gpt4 book ai didi

uibutton - 长按并点击多个 UIButton 的识别器

转载 作者:行者123 更新时间:2023-12-02 22:17:25 27 4
gpt4 key购买 nike

我的 UI 上有多个按钮,我想根据不同类型的点击执行不同的功能,

  • 单击
  • 双击
  • 长按

对我来说,单击一下很容易,一个连接了所有四个按钮的 IBAction,但对于其他类型的点击,我被卡住了,

我知道我需要使用点击手势识别器,但我无法将其设置为多个 UIButtons,

这是我想做的事情的示例

import UIKit

class ViewController: UIViewController {


@IBOutlet weak var Label: UILabel!

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}

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


func ButtonSingleTap(sender:UIButton!) {

let ButtonNumber: String = String(sender.tag)
Label.text = "Button " + ButtonNumber + " is Single Tapped"
}


func ButtonDoubleTap(sender:UIButton!) {

let ButtonNumber: String = String(sender.tag)
Label.text = "Button " + ButtonNumber + " is Double Tapped"
}


func ButtonLongTap(sender:UIButton!) {

let ButtonNumber: String = String(sender.tag)
Label.text = "Button " + ButtonNumber + " is Long Pressed"
}
}

The UI Interface

最佳答案

您不能将一个 UIGestureRecognizer 实例用于多个按钮。每个按钮都需要自己的一组手势识别器。

下面是一个向您展示如何操作的示例:

for button in [button1, button2, button3, button4] {
let longPressRecognizer = UILongPressGestureRecognizer(target: self, action: Selector("didLongPress:"))
let doubleTapRecognizer = UITapGestureRecognizer(target: self, action: Selector("didDoubleTap:"))
doubleTapRecognizer.numberOfTapsRequired = 2
button.addGestureRecognizer(longPressRecognizer)
button.addGestureRecognizer(doubleTapRecognizer)
}

func didLongPress(recognizer: UILongPressGestureRecognizer) {
guard let button = recognizer.view as? UIButton else { return }
switch recognizer.state {
case .Began:
print("long press began button \(button.tag)")
case .Ended:
print("long press ended button \(button.tag)")
default:
break
}
}

func didDoubleTap(recognizer: UITapGestureRecognizer) {
guard let button = recognizer.view as? UIButton else { return }
print("double tap button \(button.tag)")
}

为此,您必须为按钮添加 socket (button1button2button3button4)。

关于uibutton - 长按并点击多个 UIButton 的识别器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33387712/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com