Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 我怎么知道UIButton何时被释放?_Iphone_Cocoa Touch_Uibutton - Fatal编程技术网

Iphone 我怎么知道UIButton何时被释放?

Iphone 我怎么知道UIButton何时被释放?,iphone,cocoa-touch,uibutton,Iphone,Cocoa Touch,Uibutton,我遇到了一个问题,我有一个UIButton,我想在其中跟踪新闻/发布事件。因此,我将继续讨论触地/触地事件。不幸的是,在某些情况下,这不会跟踪修补事件——例如,如果弹出警报 - (IBAction)buttonDown:(id)sender; - (IBAction)buttonUp:(id)sender; 如何确保在按钮从按下/正常状态变为按下状态时通知视图控制器,无论原因是什么?尝试以下方法: [myButton addTarget: target action: @selector(bu

我遇到了一个问题,我有一个UIButton,我想在其中跟踪新闻/发布事件。因此,我将继续讨论触地/触地事件。不幸的是,在某些情况下,这不会跟踪修补事件——例如,如果弹出警报

- (IBAction)buttonDown:(id)sender;
- (IBAction)buttonUp:(id)sender;
如何确保在按钮从按下/正常状态变为按下状态时通知视图控制器,无论原因是什么?

尝试以下方法:

[myButton addTarget: target action: @selector(buttonUp:) forControlEvents: UIControlEventTouchUpInside];

您还需要跟踪触摸取消事件。应该这样做

编辑: 嗯,那
UIControlEventAllTouchEvents
呢?您必须以编程方式添加它。我真的很惊讶我没有这么做。您还可以尝试在UIViewController中处理
-(void)touchscancelled:(NSSet*)touchs with event:(UIEvent*)event

[myButton addTarget:self action:@selector(allTouches) forControlEvents:UIControlEventAllTouchEvents];


非常好。

您是在UIAlert视图当前处于顶部时尝试检测按钮是否被按下或释放,还是它已被取消,按钮按下不再响应?

忘了提及,我确实在IB中连接了内部和外部的润色。不,这也没有做到。它通常发生在我按住按钮时弹出UIAlert时。实际上是这样,当我意识到我按下IB接线时:p试图检测按下按钮时是否显示UIAlert(因为当发生这种情况时,按钮会返回正常状态,但不会触发触摸)到目前为止,我唯一能够解决这个问题的方法是轮询
按钮。state
属性,当它变回正常状态时进行响应。这显然是次优的。