2017-05-06 9 views
1

私は少し混乱しています。私はスクロールビューを拡大するためにアップルが提示した勧告に従ったが、何も起こらない。スクロールビューを拡大

コード:

import UIKit 
import SpriteKit 

class ScrollViewController: UIViewController, UIScrollViewDelegate { 
    var scrollView: UIScrollView! 
    var imageView: UIImageView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     imageView = UIImageView(image: UIImage(named: "image.png")) 
     scrollView = UIScrollView(frame: view.bounds) 
     scrollView.contentSize = imageView.bounds.size 
     scrollView.addSubview(imageView) 
     self.scrollView.delegate = self 
     self.scrollView.minimumZoomScale = 0.5 
     self.scrollView.maximumZoomScale = 3 
     view.addSubview(scrollView) 
    } 

     func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? { 
     return imageView 
    } 
} 

私はおそらく何かが欠けています。ただし、縦または横にスクロールする機能はうまく機能します。しかし、私が「オプション」を押して2つの灰色の点を動かすと、ズームは起こりません。

+0

http://stackoverflow.com/a/43200996/1292099 – iWheelBuy

+0

この回答を確認するhttp://stackoverflow.com/questions/43624834/uiimageview-zoom-and-pinch-in-uiscrollview/43626273#43626273 。その完璧に動作します。 –

答えて

0

デリゲートメソッドに間違った名前を入力しました。以前のバージョンのSwiftからそのコードをコピーしたようです。スウィフト3では、次のようになります。

func viewForZooming(in scrollView: UIScrollView) -> UIView? { 
    return imageView 
} 

このような間違いをすると、あまりにも時間を浪費する可能性があります。すべてのデリゲートメソッドをもう一度 "viewforzoom ..."とタイプすることをお勧めします。そして、自動完成はあなたに正しいものを表示します。

+0

あなたは大歓迎です! –

+0

もう一つの質問ですが、viewForZoomingプロトコルはUIViewを返す必要があるようです。しかし、私はscrollViewにUIImageVIewの配列を作成しています。返すことができますか?私の場合 私が試した: FUNC viewForZooming(scrollViewで:UIScrollViewの) - >([UIViewの]){ リターンpostItTable }と postItTable = [UIIMageView]() – VH24

+0

viewForZoomingがないプロトコルです。プロトコルはUIScrollViewDelegateと呼ばれ、クラス(ScrollViewController)が実装すべき正確なメソッドを定義します。プロトコルには「viewForZooming(scrollView:UIScrollView) - > UIViewのみ」があります。その目的のために、スクロールビューでは、ビューコントローラにのみこれを要求することができます。私はあなたのようなものが必要だと思う:いくつかのビューを追加し、そのビュー内の画像ビューをサブビューとして追加する。上記のメソッドがそのビューを返します。 –

関連する問題