【ios】Swiftでwebkitを使用してフリックで進む・戻るに対応してみる

基本業務の合間にちょこちょこと触り続けているswift。
前回から大した進歩ではありませんが、

フリックで進む・戻るを実装してみたいと思います。

目次

WebKitが良さげなのでそっちに移行

詳しい理由はわかりませんが、なんか良いらしいぞ!って事でWebKitを入れてみました。
フレームワークの実装方法はとても簡単。


Generalの下の方にLinked Frameworks and Librariesとありますので

「+」をクリックして、WebKitを選択、

あとは

import Webkit

でimportしてあげるだけです。

ステータスバーを隠そう

import UIKit
import WebKit

class ViewController: UIViewController, WKNavigationDelegate, WKUIDelegate {

var webView: WKWebView!

override func viewDidLoad() {
super.viewDidLoad()
webView = WKWebView(frame: self.view.bounds)
webView.navigationDelegate = self
webView.UIDelegate = self
self.view.addSubview(webView)
webView.allowsBackForwardNavigationGestures = true

}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)

let url = NSURL(string: "https://awe-some.net")
let request = NSURLRequest(URL: url!)
webView.loadRequest(request)
}
override func prefersStatusBarHidden() -> Bool {
return true
}
}

今回はこんな感じのコードで実装しました。

webView.allowsBackForwardNavigationGestures = true

の部分でフリックで戻る、進むの動作を実装する事ができます。
めっちゃ楽チンですね。
UIWebViewでしようとおもったら割と面倒だったのに。
そしてこのままビルドするとこんな感じに。

前回同様ステータスバーの下にViewが入り込んでいる形になります。
かぶっちゃうんですね。
改善方法としては

のどちらかが考えられますが今回は消しちゃいます。

その消しちゃうコードがこちら

override func prefersStatusBarHidden() -> Bool {
return true
}

背景が黒すぎてわかりにくいですが、

しっかりとステータスバーが消えています。
これで、とりあえずはしたいことは実装できました。
次は何しようかなー。

モバイルバージョンを終了
トップへ戻る