質問: UIWebView(frame: CGRectMake(0,0,183,300)) animationGifView.loadData(gifData, MIMEType: "image/gif", textEncodingName: "utf-8", baseURL: NSURL()) self.view.addSubview(animationGifView) というものです・・・ そしてこれを使っていると、縦にスクロールしたり長押しすると、 吹き出しのようなものが出てきて拡大されます。 このコードがいけないのか、それとも他のコードと影響しているのかすら いまいちよくわからないので、このコードの意味が知りたいです。 初心者ですので出来るだけ分かりやすく説明お願い致します。
回答: 簡単にコードの行っていることを書いてみました、参考にしてください。 1 NSDataのpublic init?(contentsOfFile path: String)というパスを指定して初期化するメソッド使用 ※ 戻り値はNSData?型です(失敗してnilもあり得る) ※ 最後の『!』で強制的にnilでない状態にしています(nilの場合はアプリが落ちます) 2 NSBundle.mainBundle() バンドルを取得する ※ NSBundleはアプリケーションのリソースをまとめて管理してくれる仕組みを提供するクラス 3 pathForResource("image",ofType:"gif")! バンドルに対してファイル「GIF名.gif」のパスを取得する ``` // NSData型のGifデータが取得できます let gifData = NSData(contentsOfFile: NSBundle.mainBundle().pathForResource("GIF名",ofType:"gif")!)! ``` 1 UIWebViewの init(frame: CGRect)というフレームサイズを指定して初期化するメソッドを使用 ※ CGRectMake(X方向, Y方向, 幅, 高さ) ``` // UIWebViewを作成します let animationGifView = UIWebView(frame: CGRectMake(0,0,183,300)) ``` 1 webViewのメソッド public func loadData(data: NSData, MIMEType: String, textEncodingName: String, baseURL: NSURL)を使用してコンテンツをWebViewにロードします ※引数は4つ ``` // webViewにコンテンツデータをロードします animationGifView.loadData(gifData, MIMEType: "image/gif", textEncodingName: "utf-8", baseURL: NSURL()) ``` 1 self = UIViewControllerに乗っていviewプロパティのメソッド public func addSubview(view: UIView) を使用して引数のUIViewにWebViewを指定して追加(viewに乗せる)しています。 ``` // animationGifViewをViewに追加 self.view.addSubview(animationGifView) ``` > > そしてこれを使っていると、縦にスクロールしたり長押しすると、 > > 吹き出しのようなものが出てきて拡大されます。 > > このコードがいけないのか、それとも他のコードと影響しているのかすら > > いまいちよくわからないので、このコードの意味が知りたいです。 > > > ``` // スクロールするのはWebViewのsubViewにScrollViewが乗っているからなので、そのScrollviewのScrollEnableをfalseにするとスクロールは止まります。 // UIWebViewのプロパティにscrollViewがあるのでそれに対してアクセスします // スクロール禁止 animationGifView.scrollView.scrollEnabled = false // バウンス禁止 animationGifView.scrollView.bounces = false ``` > > 吹き出しのようなものが出てきて拡大されます。 > > > こちらもWebViewの標準の機能です、長押しでコピーやペーストを表示する機能も同じです。 ※ コピー等のメニューは消すことができたのですが、拡大の吹き出しは消す方法が分かりませんでした。 UIWebViewでテキストの矩形選択を無効化する方法