Ios 如何在特定时间禁用特定触摸事件的特定UIButton操作

Ios 如何在特定时间禁用特定触摸事件的特定UIButton操作,ios,swift,Ios,Swift,因此,我的UI有许多UI按钮,我有一个“Action”Int,它在0-9之间循环 我希望在“Action”为0时,只注册第一个ui按钮的输入。一旦用户按下第一个ui按钮my code已经将“操作”Int推进到1,此时我希望我的程序只注册第二个ui按钮…的输入,以此类推 我的ui按钮位于一个数组中。到目前为止,我已经找到了UIButton.hidden和UIButton.enable,我可以根据“Action” .隐藏将不起作用,因为我希望按钮仍然可见 .enable使其可见,但…这里有一个问题

因此,我的
UI
有许多
UI按钮
,我有一个
“Action”
Int
,它在0-9之间循环

我希望在
“Action”
0
时,只注册第一个
ui按钮的输入。一旦用户按下第一个
ui按钮
my code已经将
“操作”
Int
推进到
1
,此时我希望我的程序只注册第二个
ui按钮
…的输入,以此类推

我的
ui按钮
位于一个数组中。到目前为止,我已经找到了
UIButton.hidden
UIButton.enable
,我可以根据
“Action”


.隐藏将不起作用,因为我希望按钮仍然可见

.enable使其可见,但…这里有一个问题

每个按钮都有4个不同的操作
touchup-inside
touchDragExit
doubleTap:gesturecognizer
longPress:gesturecognizer
,以及一个
func
功能,用于在“刷卡”中收集
ui按钮平移时数组,并在平移完成时执行这些按钮“
touchDragExit

我希望
长按:手势识别器
永远不要处于非活动状态

只要第一个按钮是==
“Action”


其他方法的任何建议,或者我如何使.enable对特定的
触摸事件有效?

如果您希望某些手势保持有效,我不建议启用和禁用

我最初的想法是在创建数组时为每个按钮设置一个标记,然后对照手势处理程序中的当前动作值进行检查

可能您需要pan集合的状态变量来检查它是否在其他按钮拾取它时成功启动,具体取决于您的实现

var buttonArray = [UIButton]()
var buttonCount = 10
var action = 0

func viewDidLoad {
   for var i = 0; i < buttonCount; ++i {
      var button = UIButton()
      button.tag = i

      button.setTarget(self, action:"didTap:", forControlEvent:.TouchUpInside)
      // Other actions
      button.setTarget(self, action:"didLongPress:", forControlEvent.LongPress)

      buttonArray.append(button)
   }
}

func didTap(sender:UIButton) {
   if action >= sender.tag {
      // Handle action
   }
}

// Other action handlers

func didLongPress(sender:UIButton) {
   // Always handle action
}
var buttonArray=[UIButton]()
var buttonCount=10
var action=0
func viewDidLoad{
对于变量i=0;i=sender.tag{
//处理动作
}
}
//其他动作处理程序
func didLongPress(发送方:UIButton){
//总是处理行动
}

如果一个对象的标签没有设置,它的标签==nil吗?一般来说,
。标签正是我想要的。任何人都可以在
.tag
上找到苹果文档的链接。我找不到