我正在为一个外观和行为像杂志的网站构建一个原生的iOS包装器。它将具有长滚动页面,但用户也可以在章节之间滑动。所以,我想要做的是加载一个新的HTML页面,但让它从左侧或右侧过渡,就好像它已被推/弹出导航堆栈一样。有谁知道是否可以将一些核心动画注入WKWebView组件以实现这种效果?
答案 0 :(得分:2)
实现此目的的一种方法是在两个WKWebViews之间制作动画。您加载第一个WKWebView,然后,当您激活转换时,您创建第二个WKWebView,将其置于屏幕外并在您将当前webView移动到屏幕外的同时为其设置动画,然后从视图中取消它。类似的东西:
func presentNextWebView() {
let webViewToRemove = currentWebView
let webViewToAdd = WKWebView()
webViewToAdd.frame = webViewToRemove.frame
webViewToAdd.center = CGPointMake(2.0*self.view.bounds.width, CGRectGetMidY(self.view.bounds))
currentWebView = webViewToAdd
self.view.addSubview(webViewToAdd)
UIView.animateWithDuration(1.0, animations: {
webViewToRemove.center = CGPointMake(-2.0*self.view.bounds.width, CGRectGetMidY(self.view.bounds))
webViewToAdd.center = self.CGPointMake(CGRectGetMidX(self.view.bounds), CGRectGetMidY(self.view.bounds))
}, completion: { finished in
webViewToRemove.removeFromSuperview()
})
}