我整个上午一直在与这个斗争,似乎无法找到解决方案。我创建了一个UIImageView
,用红色填充,然后将其添加到UIScrollView
并将contentSize
设置为UIImageView
的大小。如果我打印contentOffset
我看到(0, 0)
,如果我打印contentSize
和UIImageView.frame.size
它们是相同的,但红色“图像”总是小于scrollView
{1}}认为contentSize
是。
如果我一直滚动到顶部,我会在红色图像上方看到一个高约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)