【问题标题】:How can I disable Multi Click for UIButton in Swift? [closed]如何在 Swift 中禁用 UIButton 的 Multi Click? [关闭]
【发布时间】:2016-09-01 12:44:53
【问题描述】:

我有两个带有标识符的按钮。我想禁用这些按钮的多次点击,这样它们就不能同时点击了。

我的代码:

    self.view.multipleTouchEnabled = false
    self.view.exclusiveTouch = true

我在viewDidLoad 中尝试过这段代码,但没有成功。

【问题讨论】:

  • 您发布的代码与按钮无关。你想做什么?
  • stackoverflow.com/questions/30251663/… 我在这里找到了这段代码。为什么说这没什么。我知道那行不通。我是因为这个才问的。问题标题很清楚。在 10 分钟内投了 3 票真是太奇怪了。
  • 所以你有两个按钮,每个按钮都推动一个新的 viewController?
  • 您需要提供更多关于您正在尝试做什么以及问题所在的详细信息!你不能只发布一行不相关的代码就说它不起作用。@yesman
  • 链接问题有很多答案。您是否尝试将情节提要或viewDidLoad 中的每个按钮的exclusiveTouch 属性设置为true

标签: xcode swift uibutton multi-touch


【解决方案1】:

您的问题确实很清楚,但我想您遇到了一个非常常见的问题,可以通过将属性exclusiveTouch(参见docs)设置为true来解决用于所有按钮。

【讨论】:

    【解决方案2】:

    通过control为您的每个按钮添加@IBOutlets - 从每个按钮拖动到viewController,并为它们指定唯一的名称,例如button1button2button3

    class ViewController: UIViewController {
    
        @IBOutlet weak var button1: UIButton!
        @IBOutlet weak var button2: UIButton!
        @IBOutlet weak var button3: UIButton!
    

    然后在viewDidLoad 中,将每个按钮的exclusiveTouch 属性设置为true

    override func viewDidLoad() {
        super.viewDidLoad()
    
        button1.exclusiveTouch = true
        button2.exclusiveTouch = true
        button3.exclusiveTouch = true
    

    这将防止在按下第一个按钮的过程中按下第二个按钮。

    【讨论】:

    • 非常感谢。有效。也适用于导航栏:self.navigationController?.navigationBar.exclusiveTouch = true
    • extension UIButton { open override func touchesBegan(_ touches: Set, with event: UIEvent?) { super.touchesBegan(touches, with: event) self.isEnabled=false DispatchQueue.main. asyncAfter(deadline: .now() + 1) { self.isEnabled = true } } }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    相关资源
    最近更新 更多