¿Cómo pasar de un capítulo a otro?

Nov 28 2020

Tengo una vista web. Cada vez que el usuario hace clic en el siguiente botón, cargo la vista web con contenido nuevo:

 webView.loadHTMLString(bodyText, baseURL: nil)

¿Cómo creo la siguiente transición para que parezca que entra una nueva página desde la derecha cada vez que un usuario hace clic en Siguiente?

Ver enlace por ejemplo

https://imgur.com/bCgk5qs

Esto es lo que tengo hasta ahora

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()
})

Respuestas

matt Nov 28 2020 at 17:56

Tengo una aplicación en la tienda de aplicaciones que se comporta de manera muy similar a como parece estar describiendo. Muestra su Ayuda como vistas web cargadas desde cadenas html, al igual que lo que está haciendo. El usuario puede navegar hacia la derecha y hacia la izquierda con los botones de flecha (arriba a la izquierda) o deslizándolos manualmente con un dedo. Este screencast muestra ambos; primero uso los botones de flecha, luego deslizo manualmente:

¿Cómo se hace eso? Es trivial; es un UIPageViewController. No hace falta reinventar una rueda que ya nos ha entregado Apple.