【问题标题】:How to make a button touch sensitive如何使按钮触感灵敏
【发布时间】:2018-06-29 18:30:18
【问题描述】:

我是 iOS 的新手,我不知道如何制作一个随时激活的按钮:

  1. 手指在上面经过
  2. 手指按在上面

【问题讨论】:

  • 分享您尝试过的代码!
  • aIBAction func prova(_ sender: Any) { (sender as!UIButton).backgroundColor = UIColor.green } //拖动退出 aIBAction func prova1(_ sender: Any) { (sender as!UIButton ).backgroundColor = UIColor.green } //拖入aIBAction func prova2(_ sender: Any) { (sender as!UIButton).backgroundColor = UIColor.green } //触下aIBAction func prova3(_ sender: Any) { ( sender as! UIButton).backgroundColor = UIColor.green } 我尝试了最适合我的方法,但没有一个是第 1 点
  • 所以你没有在这些方法中得到回调?您是否将按钮与 storyboard/xib 中的这些操作相关联?
  • 这不是问题,它们工作正常,但不能按我希望的那样工作,它们应该在以下情况下激活:1. 手指通过它 2. 手指按下它跨度>

标签: ios swift button touch action


【解决方案1】:

PAN:当手指经过时

您可以简单地添加一个UIPanGestureRecognizer 识别器,然后检测何时是 UIButton,这意味着手指正在通过。

@IBAction func handlePan(gestureRecognizer: UIPanGestureRecognizer) {
    if gestureRecognizer.state == .Began || gestureRecognizer.state == .Changed {

        let translation = gestureRecognizer.translationInView(self.view)  
        // note: 'view' is optional and need to be unwrapped
        gestureRecognizer.view!.center = CGPointMake(gestureRecognizer.view!.center.x + translation.x, gestureRecognizer.view!.center.y + translation.y)  
        gestureRecognizer.setTranslation(CGPointMake(0,0), inView: self.view)  
    }  
} 

TAP:当手指按下时

您可以使用故事板中的IBAction 或将UITapGestureRecognizer 添加到按钮,然后以类似的方式创建句柄函数。

希望这会有所帮助!

【讨论】:

  • 在 CGPointMake 上给了我错误。它说它在swift中不存在
  • 我的错。所以在 swift 4 中,将 CGPointMake(startX, startY) 更改为 CGPoint(x: startX, y: startY)
猜你喜欢
  • 1970-01-01
  • 2011-10-19
  • 1970-01-01
  • 2016-12-15
  • 1970-01-01
  • 2011-01-22
  • 2018-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多