【问题标题】:Limited Area Pinchview in SwiftSwift 中的有限区域 Pinchview
【发布时间】:2016-12-01 03:33:28
【问题描述】:

我在图像视图上有一个标签,它们都在一个视图中。标签可以通过下面的代码捏住。但是,它也可以在图像视图之外进行捏合。我希望看不到 imageview 之外的区域(例如在 whatsapp 或 snapchat 中。看不到屏幕外的文本,我只想要 imageview 区域)。我不确定,但我想它会以某种方式通过将视图带到前面功能来完成。就是不知道怎么弄

  func handlePinch(recognizer: UIPinchGestureRecognizer) {
        if let view = recognizer.view as? UILabel {
            let pinchScale: CGFloat = recognizer.scale
            view.transform = view.transform.scaledBy(x: pinchScale, y: pinchScale)
            recognizer.scale = 1.0
        }
    }

【问题讨论】:

  • 您是在 IB 中添加这个吗?您的处理程序函数以及您提供的信息必须进行命中测试或我认为的其他事情。
  • 我将它添加到 pinchRecognizer.addTarget(self, action: #selector(ViewController.handlePinch(recognizer:)))
  • 实际上这可能行不通,你的“view.addgestureRecognizer(myGR)”是什么样的?
  • 就是这样,我用下面的答案解决了这个问题。 mylabel.addGestureRecognizer(pinchRecognizer)

标签: ios swift pinchzoom pinch uipinchgesturerecognizer


【解决方案1】:

我通过从 imageview(左、右上和下侧)创建视图并将所有视图设置在前面,除了具有 imageview 的视图。我在情节提要的(左侧、右侧和底部)中创建了前三个视图,在代码中创建了最后一个(上部)视图,因为我需要先隐藏状态栏,然后在其顶部创建一个视图。

 customView = UIView(frame: CGRect(x: 0, y: 0, width: 440, height: 20))
        customView.backgroundColor = UIColor.white
        self.view.addSubview(customView)
        self.view.bringSubview(toFront: view_main)
        self.view.bringSubview(toFront: view2)
        self.view.bringSubview(toFront: view3)
        self.view.bringSubview(toFront: customView)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    相关资源
    最近更新 更多