【问题标题】:pinch to zoom gesture捏缩放手势
【发布时间】:2018-12-02 02:22:25
【问题描述】:

我编写此代码以允许用户捏住文本以放大或缩小。 是否可以放置一个 minRange 和一个 maxRange?我该怎么做。 另一个问题:双击后是否可以返回默认缩放?非常感谢。

override func viewDidLoad() {
        super.viewDidLoad()

        configureView()
        pinchGesture = UIPinchGestureRecognizer(target: self, action:#selector(pinchText(sender:)))
        tv_testoCanzone.addGestureRecognizer(pinchGesture)
        let range = NSMakeRange(tv_testoCanzone.text.count - 1, 0)
        tv_testoCanzone.scrollRangeToVisible(range)

    }

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

    @objc func pinchText(sender: UIPinchGestureRecognizer) {
        var pointSize = tv_testoCanzone.font?.pointSize
        pointSize = ((sender.velocity > 0) ? 1 : -1) * 1 + pointSize!;
        tv_testoCanzone.font = UIFont( name: "arial", size: (pointSize)!)
    }

【问题讨论】:

    标签: swift label pinchzoom


    【解决方案1】:

    可能对pointSize 变量设置下限和上限会起作用:

    @objc func pinchText(sender: UIPinchGestureRecognizer) {
        var pointSize = tv_testoCanzone.font?.pointSize
        pointSize = ((sender.velocity > 0) ? 1 : -1) * 1 + pointSize!;
    
        let maxZoom = <some number>
        let minZoon = <some number>
        if pointSize > maxZoom {
            pointSize = maxZoom
        }
        if pointSize < minZoom {
            pointSize = minZoom
        }
    
        tv_testoCanzone.font = UIFont( name: "arial", size: (pointSize)!)
    }
    

    您是否考虑过使用UIScrollViewUITextView(它本身就是UIScrollView)?他们为你设计了这些手势。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      • 2011-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多