在您UIControlEventTouchDown
希望UIControlEvenTouchUpInside
不触发的事件的操作中,您可以在按钮上为该事件设置不同的(可能为空)操作,或者只是删除该操作。保持选择器引用或只知道它通常应该触发的其他操作的方法名称,如果您希望它触发,请重置它:
if ( buttonUsedDownAction )
{
[button removeTarget:(self?) action:@selector(yourPrivateFunction) forControlEvents:UIControlEventTouchUpInside];
}
else
{
if ( [button actionsForTarget:(self?) forControlEvent:UIControlEventTouchUpInside].length == 0 )
{
[button addTarget:(self?) action:@selector(yourPrivateFunction) forControlEvents:UIControlEventTouchUpInside];
}
}
我设置(self?)
了目标,因为我不确定 self 是否是 Touch up inside 动作的接收者,但你应该明白