2017-08-25 13 views
0

UIScrollView内にUIImageViewがあり、「通常」の写真寸法の寸法をスクロールできるようにしたいと思います。私の問題は私がスクロールすることができるということです。しかし、写真の上部または下部に行くと、スクロール位置は保持されず、代わりに「バウンス」して少し上に戻ります。その位置に留まる写真、これを修正する方法は?あなたがカメラで撮影したフルスクリーンの写真を持っていた、と写真がビュー内に表示されたときに、全体の写真ができない場合UIScrollView内で完全にスクロールできません

scrollView.frame = CGRect(x: self.view.frame.width * 0, y: self.view.frame.height/3, width: self.view.frame.width, height: self.view.frame.width) 
     self.view.addSubview(scrollView) 
     scrollView.delegate = self 


     let image = imageView.image 
     imageView.frame = CGRect(x: self.view.frame.width * 0, y: self.view.frame.height * 0, width: (image?.size.width)!, height: (image?.size.height)!) 
     imageView.frame = scrollView.bounds 
     imageView.contentMode = .scaleAspectFill 
     scrollView.addSubview(imageView) 

例のようになります。ここ

は、以下のコードがありますそれがスクロールされているときにその位置にとどまる。

+0

ちょうどアドバイスのためにすぐに3です。フレームを使用してビューを設定するのは良い選択肢ではありません。 –

答えて

1

// set scroll view frame to be full width of view, start 1/3 of the way down from the top, and make the height the same as the width 
    scrollView.frame = CGRect(x: 0, y: self.view.frame.height/3, width: self.view.frame.width, height: self.view.frame.width) 

    // add the scroll view to the view 
    self.view.addSubview(scrollView) 

    // use "if let" so you're not force-unwrapping optionals 
    if let image = imageView.image { 

     // set the imageView's frame to the size of the image 
     imageView.frame = CGRect(x: 0, y: 0, width: image.size.width, height: image.size.height) 

     // add the imageView to the scroll view 
     scrollView.addSubview(imageView) 

     // set the contentSize of the scroll view - the "scrollable area" - to the size of the image view 
     scrollView.contentSize = imageView.bounds.size 
    } 
0

バウンスは、UIScrollView(およびそのサブクラス(UiTableViewを含む))のオプションの動作です。 bounces propertyまたはInterface Builderでオン/オフを切り替えることができます。

私は通常、便利な方法で目的のScrollViewプロパティをまとめて(またはUIAppearanceを使用して)、すべてのビューが動作を共有していることを確認します。あなたは間違ったものの数をやっている、と述べたように、あなたのイメージは、あなたが行っている方法をスクロール取得するには、自動レイアウトおよび制約が...

を移動する必要があります

+0

さらにデバッグした後、スクロールビューの寸法を現在のものの半分に変更すると、まったくスクロールすることができるようになり、プログラムですべてこれをやっていて、インターフェースビルダー – AndrewS

関連する問題