我目前正在开发一个自定义 UIControl 子类。要跟踪触摸,我使用以下方法:
- (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
NSLog(@"Start");
CGPoint location = [touch locationInView:self];
if ([self touchIsInside:location] == YES) {
//Touch Down
[self sendActionsForControlEvents:UIControlEventTouchDown];
return YES;
}
else {
return NO;
}
}
这可以按预期工作,并且 @"Start" 只记录一次。下一步是使用 UIControlEventTouchDown 添加一个 Target 和一个 Selector。
[markItem addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside];
这也有效,并且调用了 action: 方法。但这是我的问题。该动作被调用两次。我究竟做错了什么?我只使用[self sendActionsForControlEvents:UIControlEventTouchDown];
一次,目标操作被调用两次。我的代码有什么问题?
桑德罗·迈耶