我希望有人可以帮助我。我试图允许用户捏UIImageView(允许最大和最小级别)上的缩放。但是由于某种原因,它无法正常工作。图像会稍微放大,然后反弹。谢谢。
这是变焦功能
func zoom(sender:UIPinchGestureRecognizer) { if sender.state == .Ended || sender.state == .Changed { let currentScale = self.view.frame.size.width / self.view.bounds.size.width var newScale = currentScale*sender.scale if newScale < 1 { newScale = 1 } if newScale > 9 { newScale = 9 } let transform = CGAffineTransformMakeScale(newScale, newScale) self.imageView?.transform = transform sender.scale = 1 } }
我决定将imageView添加到UIScrollView中。它允许用户缩放和平移。这是我使用的代码。
为了设置最大/最小缩放,我使用了:
scrollImg.minimumZoomScale = 1.0 scrollImg.maximumZoomScale = 10.0
这是其余的代码。
var vWidth = self.view.frame.width var vHeight = self.view.frame.height var scrollImg: UIScrollView = UIScrollView() scrollImg.delegate = self scrollImg.frame = CGRectMake(0, 0, vWidth!, vHeight!) scrollImg.backgroundColor = UIColor(red: 90, green: 90, blue: 90, alpha: 0.90) scrollImg.alwaysBounceVertical = false scrollImg.alwaysBounceHorizontal = false scrollImg.showsVerticalScrollIndicator = true scrollImg.flashScrollIndicators() scrollImg.minimumZoomScale = 1.0 scrollImg.maximumZoomScale = 10.0 defaultView!.addSubview(scrollImg) imageView!.layer.cornerRadius = 11.0 imageView!.clipsToBounds = false scrollImg.addSubview(imageView!)
我也必须添加它
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? { return self.imageView }
Swift 3及以上功能原型
func viewForZooming(in scrollView: UIScrollView) -> UIView? { return self.mainImage }