Comment passer d'un chapitre à un autre?
J'ai une webview. Chaque fois que l'utilisateur clique sur le bouton suivant, je charge la vue Web avec un nouveau contenu:
webView.loadHTMLString(bodyText, baseURL: nil)
Comment créer la transition suivante pour qu'il semble qu'une nouvelle page arrive de la droite chaque fois qu'un utilisateur clique sur le suivant?
Voir le lien par exemple
https://imgur.com/bCgk5qs
Voici ce que j'ai jusqu'à présent
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()
})
Réponses
J'ai une application sur l'App Store qui se comporte comme vous semblez le décrire. Il affiche son aide sous forme de vues Web chargées à partir de chaînes html, tout comme ce que vous faites. L'utilisateur peut naviguer à droite et à gauche soit avec les boutons fléchés (en haut à gauche), soit en glissant manuellement avec un doigt. Ce screencast montre les deux; J'utilise d'abord les boutons fléchés, puis je glisse manuellement:

Comment cela se fait-il? C'est trivial; c'est un UIPageViewController. Inutile de réinventer une roue qu'Apple nous a déjà remise.