一尘不染

UIImageView捏缩放迅速

swift

我希望有人可以帮助我。我试图允许用户捏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

    }

}

阅读 199

收藏
2020-07-07

共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
}
2020-07-07