2017-03-02 6 views
2

スクロールビューでスクロールビューが3つあります。ズームが機能していません。私はスクロールビューを設定し、内部にイメージビューを配置しました。私はデリゲートとして自己を設定し、viewForZoomingInScrollViewを実装しました。見てください。ありがとう。スクロールビューでズームが機能しない

編集:以前は言及していなかったことは、これがナビゲーションコントローラのビューであるということでした。それはそれに影響を与えるだろうか?

class FlowDiagramViewController: UIViewController, UIScrollViewDelegate { 

    var scrollView: UIScrollView! 
    var imageView:UIImageView! = UIImageView() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 
     let image = UIImage(named: "flowNewRotated1242x2208.png") 
     imageView = UIImageView(image: image) 

     setupPictureWithZoom() 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    func setupPictureWithZoom() { 
     // http://stackoverflow.com/questions/30014241/uiimageview-pinch-zoom-swift 

     imageView.frame = CGRect(x: 0, y: 0, width: 1242, height: 2208) 
     // imageView.transform = imageView.transform.rotated(by: CGFloat(M_PI_2)) 
     imageView!.layer.cornerRadius = 11.0 
     imageView!.clipsToBounds = false 

     scrollView = UIScrollView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height)) 


     scrollView.minimumZoomScale = 0.25 
     scrollView.maximumZoomScale = 5.0 

     scrollView.delegate = self 

     scrollView.backgroundColor = UIColor(red: 90, green: 90, blue: 90, alpha: 0.90) 
     scrollView.alwaysBounceVertical = false 
     scrollView.alwaysBounceHorizontal = false 
     scrollView.showsVerticalScrollIndicator = true 
     scrollView.flashScrollIndicators() 
     scrollView.contentSize = CGSize(width: 1242, height: 2208) 


     scrollView.addSubview(imageView!) 
     view.addSubview(scrollView!) 


     scrollView.setZoomScale(0.25, animated: true) 
    } 

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

私は、ストーリーボードとコードの両方でスクロールビューを定義しようとしました。

答えて

5

のように動作し、以下のように

scrollView.minimumZoomScale = 0.25 
scrollView.maximumZoomScale = 5.0 
+0

他の人は答えを知っています – Vinodh

+0

コードを移動して見つけにくいときによくある問題です。 Upvoteこれ! –

1

これらの2行は、のviewDidLoadでなければなりません:それは迅速3問題でした魅力

scrollView.contentSize = imageView.frame.size 
+0

これらのviewDidLoadに既にあります。関数呼び出しを確認してください –

+0

これは私のために役に立たなかった申し訳ありません – mjpablo23

+0

助けてくれてありがとう、私はそれを考え出しました – mjpablo23

0

は、コンテンツサイザーを変更してみてください。新しい関数プロトタイプ:

迅速な3バージョン

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

迅速2バージョン

// func viewForZoomingInScrollView(scrollView: UIScrollView!) -> UIView! { 
//  return imageView 
// } 
+0

残念ながら、これは私のために働いていません – mjpablo23

+0

助けてくれてありがとう、私はそれを考え出しました – mjpablo23

関連する問題