【发布时间】:2015-07-02 14:10:25
【问题描述】:
我在 UIViewController 中有一个 UIScrollView(由 ImageViewController 子类化)。 ViewController 本身是 NavigationController 堆栈的一部分。现在,除了有一个导航栏,我希望 ScrollView 占据屏幕上所有可用的空间。然后滚动视图内的 UIImageView 应该填充滚动视图的可用空间。您可以在此帖子的底部查看当前状态。
class ImageViewController: UIViewController, UIScrollViewDelegate {
@IBOutlet weak var scrollView: UIScrollView!
var imageView: UIImageView?
var image: UIImage?
override func viewDidLoad() {
super.viewDidLoad()
scrollView.delegate = self
if let image = image {
imageView = UIImageView(image: image)
if let imageView = imageView {
imageView.frame = CGRect(origin: CGPoint(x: 0, y: 0), size: image.size)
scrollView.addSubview(imageView)
scrollView.contentSize = image.size
let scaleHeight = scrollView.frame.size.height / scrollView.contentSize.height
let scaleWidth = scrollView.frame.size.width / scrollView.contentSize.width
let minimumScale:CGFloat = min(scaleHeight, scaleWidth)
let maximumScale:CGFloat = max(scaleHeight, scaleWidth)
scrollView.minimumZoomScale = minimumScale
scrollView.maximumZoomScale = maximumScale
scrollView.zoomScale = maximumScale
}
}
}
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
return imageView
}
}
代码给我留下了不必要的边框(左、右、上)。我该如何摆脱它们?
编辑:在@Bxtr 的建议和another stackoverflow thread 的帮助下,我能够移除滚动视图的左右边框。经过一番挖掘,我发现通过停用Adjust Scroll View Insets,滚动视图内的图像可以正确垂直定位。不过,我一开始不明白垂直错位的原因......
【问题讨论】:
标签: uiscrollview uiimageview border dimensions