2016-01-14 2 views
2

Я создаю родную оболочку iOS для веб-сайта, который выглядит и ведет себя как журнал. Он будет иметь длинные страницы прокрутки, но пользователь также может прокручивать между главами. Итак, что бы я хотел сделать, это загрузить новую HTML-страницу, но переместить ее слева или справа, как если бы она была нажата/вытащена из стека навигации. Кто-нибудь знает, можно ли внедрить некоторую базовую анимацию в компонент WKWebView для достижения этого эффекта?WKWebView переход новой страницы

ответ

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

Проблема _was_ что вся навигация между страницами была выполнена в HTML с использованием JavaScript. Так же, как и вертикальная прокрутка, вы могли прокручивать влево и вправо, чтобы перейти на предыдущую и следующие страницы. Я хотел каким-то образом изменить способ, которым WKWebView загружает новую страницу сам по себе. –

Смежные вопросы