我正在尝试使用UIControlEventTouchDown
简单的事件调用操作,该事件位于(用 推动)UIButton
的左下角 。UIViewController
UINavigationController
我创建了故事板来推动带有按钮的视图控制器。
并为按钮添加操作以跟踪触摸事件。
- (IBAction)touchUpInside:(id)sender {
NSLog(@"touchUpInside");
}
- (IBAction)touchDown:(id)sender {
NSLog(@"touchDown");
}
并且还添加了 touchesBegan 来跟踪它是否被调用。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self touchesBegan:touches withEvent:event];
NSLog(@"touchesBegan");
}
现在,通过这样的设置,我有奇怪的行为。左侧(宽度 = 13)和左下方(宽度 = 50,高度 = 50)有一些触摸区域对触摸的响应不同。如果您将触摸这些区域 -touchesBegan 不会像正常行为那样被调用。但它只会在修饰后被调用。
我相信 UINavigationControler 中使用左侧区域用于推送 UIViewController 的交互式弹出。所以这里有两个问题。
- 左下角的负责区域是哪个功能?
- 如何以及在何处更改行为以将触摸事件传递给 UIButton(例如,如果我希望 UIButton 响应长触摸事件,当我按下“红色”区域时)?