【问题标题】:pinch zoom in does not work when it first zooms - ios首次缩放时捏放大不起作用 - ios
【发布时间】:2018-12-15 10:12:52
【问题描述】:

我将 UIImageView 作为 UIScrollView 的子视图。

let newImageView = UIImageView(image: imageView.image)

newImageView.contentMode = .scaleAspectFit
newImageView.isUserInteractionEnabled = true
let tap = UITapGestureRecognizer(target: self, action: #selector(self.dismissFullscreenImage))
newImageView.addGestureRecognizer(tap)

scrollPinch = UIScrollView()
scrollPinch.frame = UIScreen.main.bounds
scrollPinch.isUserInteractionEnabled = true
scrollPinch.minimumZoomScale = 1.0
scrollPinch.maximumZoomScale = 6.0
scrollPinch.delegate = self
scrollPinch.clipsToBounds = true

newImageView.frame = scrollPinch.bounds

self.view.addSubview(self.scrollPinch)
self.scrollPinch.addSubview(newImageView)

像这样。 (* scrollPinch 在这个 ViewController 类的方法之外被声明为 var scrollPinch: UIScrollView!) 然后,在委托方法中,

func viewForZooming(in scrollView: UIScrollView) -> UIView? {
    if (scrollView == scrollPinch){
        if (scrollView.subviews[0].isKind(of: UIImageView.self)){

            return scrollView.subviews[0]
        }
    }
    return nil
}

现在,我首先尝试放大,imageView 向右移动而不是放大。但是,在我放开 imageView 并尝试再次放大后,它工作得很好。

有什么办法解决这个问题吗?

【问题讨论】:

    标签: ios swift uiscrollview zooming pinch


    【解决方案1】:

    原来我应该这样做

    self.scrollPinch.addSubview(newImageView)
    self.view.addSubview(self.scrollPinch)
    

    而不是

    self.view.addSubview(self.scrollPinch)
    self.scrollPinch.addSubview(newImageView)
    

    在我交换这两行之后,一切都解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-26
      • 2019-01-22
      • 2023-04-04
      • 2014-10-24
      • 2018-02-03
      • 1970-01-01
      • 2012-01-29
      相关资源
      最近更新 更多