【发布时间】:2010-12-20 14:34:53
【问题描述】:
我有一个覆盖在 iPhone 相机视图上的视图。在这个视图中,我有一些 uibuttons 显示在位置,具体取决于加速度计/罗盘的值。 当用户在视图内触摸但他没有在 uibuttons 内触摸时,我需要触发一个事件,我的意思是,在 uibuttons 内触摸的相反动作。 任何人都知道这样做吗? 谢谢!
【问题讨论】:
标签: iphone uibutton touch accelerometer camera-overlay
我有一个覆盖在 iPhone 相机视图上的视图。在这个视图中,我有一些 uibuttons 显示在位置,具体取决于加速度计/罗盘的值。 当用户在视图内触摸但他没有在 uibuttons 内触摸时,我需要触发一个事件,我的意思是,在 uibuttons 内触摸的相反动作。 任何人都知道这样做吗? 谢谢!
【问题讨论】:
标签: iphone uibutton touch accelerometer camera-overlay
如果你实现了 UIResponder touchesBegan:withEvent: 方法..
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
...在您看来,您将能够判断用户何时在按钮之外按下。
请参阅UIResponder Class Reference 了解更多信息。
【讨论】:
你可以例如为 UiVeiw 及其 UIButtons 分配一个事件处理程序(IBAction),然后比较 sender 参数:
-(IBAction) viewClicked :(id) sender {
if (id == myView) ...
}
【讨论】:
我尝试了您的选择,但它不起作用。我试图触发事件的视图位于相机视图中的 TabBar 项中,因此我认为响应者链不适用于它。
最后,我解决了第一响应者覆盖视图的问题:[viewOverlay.view becomeFirstResponder];
【讨论】: