我正在使用Xcode 6.4并使用swift编写。
现在我正在尝试在宽高比适合中显示一个简单的图像,然后可以放大。不幸的是,图像加载完全缩放。其他所有工作都很好,双击甚至导致看到图像方面适合。我怎么能改变我的代码,以便图像加载方面适合?
我的情况与
非常相似UIImage Is Not Fitting In UIScrollView At Start
然而,目标c答案不再适用。
这是我的viewDidLoad代码
override func viewDidLoad() {
super.viewDidLoad()
imageView = UIImageView(image: UIImage(named: "image.png"))
scrollView = UIScrollView(frame: view.bounds)
scrollView.backgroundColor = UIColor.blackColor()
scrollView.contentSize = imageView.bounds.size
scrollView.autoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight
scrollView.contentOffset = CGPoint(x: 1000, y: 450)
scrollView.addSubview(imageView)
view.addSubview(scrollView)
scrollView.delegate = self
setZoomScale()
setupGestureRecognizer()
}
这是我的setZoomScale()
代码 func setZoomScale() {
let imageViewSize = imageView.bounds.size
let scrollViewSize = scrollView.bounds.size
let widthScale = scrollViewSize.width / imageViewSize.width
let heightScale = scrollViewSize.height / imageViewSize.height
scrollView.minimumZoomScale = min(widthScale, heightScale)
scrollView.zoomScale = 1.0
}
所有这些都来自在线教程
http://www.appcoda.com/uiscrollview-introduction/
提前谢谢!
答案 0 :(得分:2)
解决方案,在我的setZoomScale函数中,我将scrollView的缩放比例设置为“1.0”而不是最小值
这是更正的代码,希望这有助于某人!
func setZoomScale() {
let imageViewSize = imageView.bounds.size
let scrollViewSize = scrollView.bounds.size
let widthScale = scrollViewSize.width / imageViewSize.width
let heightScale = scrollViewSize.height / imageViewSize.height
let minZoomScale = min(widthScale, heightScale)
scrollView.minimumZoomScale = minZoomScale
scrollView.zoomScale = minZoomScale
}
答案 1 :(得分:0)
我尝试了Stephen Mather的答案中的代码,但是直到我添加了此UIScrollView委托方法后,它才起作用:
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return imageView
}