2016-10-21 9 views
1

私はこれを徹底的に戦っており、解決策を見つけることができません。 UIImageViewを作成し、赤で塗りつぶした後、UIScrollViewに追加し、contentSizeUIImageViewのサイズに設定します。 contentOffsetを印刷すると、(0, 0)が表示され、contentSizeUIImageView.frame.sizeを印刷すると、それらは同じですが、赤色の「イメージ」は常にscrollViewcontentSizeと思われるサイズよりも小さく表示されます。UIScrollViewを適切に構成できません(上にオフセット)

上までスクロールすると、赤い画像の上に約100ピクセルのシアンのストライプが表示され、スクロールバーはスクロールビューの最上部までずっと上に移動しませんすることが。スクロールバーの上部は赤いウィンドウの上部に並んでいますが、スクロールビューは実際にどこにあるのか混乱しているように見えます。以上の可能性が高い、私はここでIMG http://i64.tinypic.com/33mwewj.png

が混乱している私のそれは​​オプションだったことが判明したものを非常に簡単なコードのように思える...コメント欄での議論から

imgHorizon = UIImage.init(named:"horizon")! 
    imgBezel = UIImage.init(named:"bezel_transparent")! 
    imgWings = UIImage.init(named:"wings_transparent")! 

    imgViewHorizon = UIImageView.init() 
    imgViewBezel = UIImageView.init() 
    imgViewWings = UIImageView.init() 

    svHorizon = UIScrollView.init() 

    super.init(coder: aDecoder) 

    imgViewHorizon = UIImageView(frame: CGRect(x: 0, y: 0, width: imgBezel.size.width, height: imgHorizon.size.height)) 
    imgViewHorizon.backgroundColor = UIColor.red 

    imgViewBezel = UIImageView(frame: CGRect(x: 0, y: 0, width: imgBezel.size.width, height: imgBezel.size.height)) 
    imgViewBezel.contentMode = UIViewContentMode.center 
    imgViewBezel.clipsToBounds = true 
    imgViewBezel.image = imgBezel 

    imgViewWings = UIImageView(frame: CGRect(x: 0, y: 0, width: imgBezel.size.width, height: imgBezel.size.height)) 
    imgViewWings.contentMode = UIViewContentMode.center 
    imgViewWings.clipsToBounds = true 
    imgViewWings.image = imgWings 

    svHorizon = UIScrollView(frame: CGRect(x: 0, y: 0, width: imgBezel.size.width, height: imgBezel.size.width)) 
    svHorizon.contentSize = CGSize(width: imgBezel.size.width, height: imgHorizon.size.height) 
    svHorizon.contentMode = UIViewContentMode.scaleToFill 
    svHorizon.bounces = false 
    svHorizon.backgroundColor = UIColor.cyan 
    svHorizon.contentOffset = CGPoint(x: 0, y: 0) 

    svHorizon.addSubview(imgViewHorizon) 
    addSubview(svHorizon) 
    addSubview(imgViewBezel) 
    addSubview(imgViewWings) 
+1

あなたは 'ViewController'にこのコードを書かれている場所を教えてください? 'ViewController'の' Attributes Inspector'で 'Adjust Scroll View Insets'のチェックを外してください。 – Adeel

+0

私はUIViewから継承したクラスでそれを書きました。このコードは 'required init?(coder aDecoder:NSCoder)'メソッドにあります。インターフェイスビルダーで私は私のviewcontrollerにUIViewを落とし、クラスを自分のカスタムクラスに設定しました – lusher00

+0

'layoutSubviews'メソッドをオーバーライドし、そこで' imageViews'のフレームを設定しました。 'Adjust Scroll View Insets'のチェックを外しましたか? – Adeel

答えて

1

ViewControllerの属性インスペクタでチェックします。これをオフにして問題を解決しました。下の画像を見てください。強調表示されたオプションのチェックを外す必要があります。高速な診断のために

​​

関連する問題