Como fazer a transição de um capítulo para outro?

Nov 28 2020

Eu tenho uma webview. Cada vez que o usuário clica no próximo botão, eu carrego o webview com novo conteúdo:

 webView.loadHTMLString(bodyText, baseURL: nil)

Como faço para criar a transição a seguir para que pareça que uma nova página está chegando da direita sempre que um usuário clica em seguida?

Veja o link por exemplo

https://imgur.com/bCgk5qs

Aqui está o que eu tenho até agora

let webViewToRemove = webView
let webViewToAdd = WKWebView()
webViewToAdd.frame = webViewToRemove?.frame as! CGRect
if (swipeLeft) {
    webViewToAdd.center = CGPoint(x: 2.0*self.view.bounds.width, y: webView.bounds.midY)
} else {
    webViewToAdd.center = CGPoint(x: -2.0*self.view.bounds.width, y: webView.bounds.midY)
}
webView = webViewToAdd
webView.loadHTMLString(bodyText, baseURL: nil)
self.view.addSubview(webViewToAdd)
UIView.animate(withDuration: 1.0, animations: {
    if (swipeLeft) {
        webViewToRemove?.center = CGPoint(x: -2.0*self.view.bounds.width, y: self.webView.bounds.midY)
    } else {
        webViewToRemove?.center = CGPoint(x: 2.0*self.view.bounds.width, y: self.webView.bounds.midY)
    }
    webViewToAdd.center = CGPoint(x: self.view.bounds.midX, y: self.webView.bounds.midY)
    }, completion: { finished in
        webViewToRemove?.removeFromSuperview()
})

Respostas

matt Nov 28 2020 at 17:56

Tenho um aplicativo na app store que se comporta da mesma forma que você parece estar descrevendo. Ele mostra sua Ajuda como visualizações da web carregadas de strings html, exatamente como o que você está fazendo. O usuário pode navegar para a direita e para a esquerda com os botões de seta (canto superior esquerdo) ou deslizando manualmente com o dedo. Este screencast mostra ambos; primeiro uso os botões de seta e, em seguida, deslizo manualmente:

Como isso é feito? É trivial; é um UIPageViewController. Não há necessidade de reinventar uma roda que a Apple já nos deu.