捏合和缩放Swift

3

我试图在一个带有滚动视图的控制器中实现对传入图片的捏合和缩放,如此教程所示:

https://www.veasoftware.com/tutorials/2015/8/3/pinch-to-zoom-uiimageview-with-swift

我不确定我做错了什么。我的代码:

import UIKit
import Haneke

class imageZoomedController : UIViewController, UIScrollViewDelegate {


    @IBOutlet weak var imageView: UIImageView!
    var imageViewUrl : String?

    @IBOutlet weak var scrollView: UIScrollView!
    override func viewDidLoad()
    {
        super.viewDidLoad()
        self.scrollView.minimumZoomScale = 1.0
        self.scrollView.maximumZoomScale = 6.0
        self.imageView.userInteractionEnabled = true
        if let url = NSURL(string: imageViewUrl!) {
            print("url is \(url)")
            self.imageView!.hnk_setImageFromURL(url)
        }
    }

    override func didReceiveMemoryWarning()
    {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView?
    {
        return self.imageView!
    }


}

我可以在屏幕上看到图像,但无法使用捏合和缩放手势

更新

imageView的限制:

Align center X to superView = 0
Align center Y to superView = 0
Trailing to superView = 0
Leading to superView = 0
Bottom space to superView = 0
Top space to superView = 0

ScrollView的限制:

Trailing space to superView = -20
Leading space to superView = -20
Top space to topLayoutGuide = 20
Bottom space to bottomLayoutGuide = 20
//also tried 0 for all these as per demo but same outcome

你能否重新检查一下scrollView在storyboards中是否已经正确设置?(即,自动布局/约束没有问题)? - mohonish
@mohonish 我的限制条件与示例项目中的相同。我会将它们作为更新添加到问题中。 - user2363025
@mohonish,我解决了。我之前没将scrollView拖到viewController上设置为代理! :) - user2363025
嘿,太好了。那是一个常见的错误,我自己也犯过很多次。 :) - mohonish
1个回答

1
我已经使用了相同的视频。问题在于您需要将scrollView设置为委托。在IB中,控制拖动scrollView到视图控制器并选择Delegate。这应该可以解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接