私はこれを徹底的に戦っており、解決策を見つけることができません。 UIImageView
を作成し、赤で塗りつぶした後、UIScrollView
に追加し、contentSize
をUIImageView
のサイズに設定します。 contentOffset
を印刷すると、(0, 0)
が表示され、contentSize
とUIImageView.frame.size
を印刷すると、それらは同じですが、赤色の「イメージ」は常にscrollView
がcontentSize
と思われるサイズよりも小さく表示されます。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)
あなたは 'ViewController'にこのコードを書かれている場所を教えてください? 'ViewController'の' Attributes Inspector'で 'Adjust Scroll View Insets'のチェックを外してください。 – Adeel
私はUIViewから継承したクラスでそれを書きました。このコードは 'required init?(coder aDecoder:NSCoder)'メソッドにあります。インターフェイスビルダーで私は私のviewcontrollerにUIViewを落とし、クラスを自分のカスタムクラスに設定しました – lusher00
'layoutSubviews'メソッドをオーバーライドし、そこで' imageViews'のフレームを設定しました。 'Adjust Scroll View Insets'のチェックを外しましたか? – Adeel