所以我的UI
有很多UIButtons
,我有一个"Action"
Int
,循环显示0-9。
我想在"Action"
为0
时这样做,只会注册第一个UIButton
的输入。一旦用户按下第一个UIButton
我的代码已经将"Action"
Int
推进到1
,此时我希望我的程序只注册来自第二UIButton
......等等。
我的UIButtons
在数组中。到目前为止,我找到了UIButton.hidden
和UIButton.enable
,我可以根据"Action"
.hidden赢了工作,因为我希望按钮仍然可见。
.enable让它保持可见但是......这就是捕获。
每个按钮有4个不同的操作touchUpInside
touchDragExit
doubleTap:GestureRecognizer
和longPress:GestureRecognizer
以及func
收集&UIButtons
的& #34;滑动"平移时阵列并执行这些按钮'潘完成后touchDragExit
。
我希望longPress:GestureRecognizer
永远不会变为非活动状态。
我希望Pan func仍然能够收集数组中的按钮,只要第一个按钮是== "Action"
有关其他方法的任何建议,或者我如何为特定touchEvents
制作.enable工作?
答案 0 :(得分:0)
如果您希望某些手势继续有效,我建议您不要启用和禁用。
我最初的想法是在创建数组时为每个按钮设置一个标记,然后检查手势处理程序中的当前操作值。
也许您可能需要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
}