无法缩放UIScrollView中的图像
我一直坚持了几个小时。我只需要一个ScrollView中的ImageView。我想要将contentMode设置为方向填充,以便图像每次都填充ImageView。我也希望用户能够缩放和平移图像。这里是我的代码:无法缩放UIScrollView中的图像
import UIKit
class ViewController: UIViewController, UIScrollViewDelegate {
var scrollView: UIScrollView!
var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
let image = UIImage(named: "fish")!
imageView = UIImageView(image: image)
imageView.frame = CGRect(origin: CGPoint(x: 0, y: 0), size:image.size)
imageView.contentMode = .scaleAspectFill
scrollView = UIScrollView(frame: view.bounds)
scrollView.backgroundColor = UIColor.black
scrollView.contentSize = imageView.bounds.size
scrollView.delegate = self
scrollView.minimumZoomScale = 0.1
scrollView.maximumZoomScale = 4.0
scrollView.zoomScale = 1.0
scrollView.addSubview(imageView)
view.addSubview(scrollView)
}
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
return imageView
}
}
首先我不能放大或缩小,不明白为什么。我设置代表,实施viewForZoomingInScrollView并设置最大ZoomScale从我读的是要求缩放工作。
其次,图像没有看点适合屏幕。内容模式设置似乎没有影响任何东西,因为当我将它设置为.scaleToFill时,图像不会挤入屏幕中,我可以平移它。
图片小于屏幕: http://i.imgur.com/eEuy0En.png
原件: http://i.imgur.com/1cH4rrk.png
原件:: http://i.imgur.com/ThNhapb.jpg
越小图像应该方面填充 http://i.imgur.com/GtkKWKu.jpg
图片大于屏幕屏幕,但它不和和在这两种情况下缩放都不起作用。我只能围绕更大的图像。
你的问题是在UIScrollViewDelegate
方法错字
应该
func viewForZooming(in scrollView: UIScrollView) -> UIView?
希望这有助于你
谢谢,这个固定的缩放的问题。 AspectFill仍然不工作寿:/ – MHCsk
我认为你应该使用'imageView.contentMode = .scaleAspectFit'而不是'imageView.contentMode = .scaleAspectFill' –
请试试这个:
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return imageView!
}
func scrollViewDidEndZooming(_ scrollView: UIScrollView, with view: UIView?, atScale scale: CGFloat) {
self.scrollView.flashScrollIndicators()
}
创建两个出口:---
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var imgPhoto: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
scrollView.minimumZoomScale = 1.0
scrollView.maximumZoomScale = 6.0
}
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return imgPhoto
}
否则您的代码
let image = UIImage(named: "fish")!
imageView = UIImageView(image: image)
imageView.frame = CGRect(origin: CGPoint(x: 0, y: 0), size:image.size)
// imageView.contentMode = .scaleAspectFill
//
scrollView = UIScrollView(frame: view.bounds)
// scrollView.backgroundColor = UIColor.black
// scrollView.contentSize = imageView.bounds.size
scrollView.delegate = self
scrollView.minimumZoomScale = 0.1
scrollView.maximumZoomScale = 4.0
//scrollView.zoomScale = 1.0
scrollView.addSubview(imageView)
view.addSubview(scrollView)
请检查我的回答 –