我想要做的是设置一堆UIControl对象通过相同的处理程序发送所有事件.该处理程序需要根据UIControlEvents触发的类型确定适当的操作.
- (void)handleEventFromControl:(id)sender withEvent:(UIEvent *)event {
UIControl *control = sender;
NSIndexPath *indexPath = [controlIndexPaths objectForKey:control];
UIControlEvents controlEventType = event.type; //PROBLEM HERE
BOOL fire = NO;
NSNumber *eventCheck = [registeredEventsByToolkitIndex objectAtIndex:indexPath.toolkit];
fire = ([eventCheck integerValue] & controlEventType);
if(!fire) {
eventCheck = [registeredEventsByControlIndex objectAtIndex:indexPath.control];
fire = ([eventCheck integerValue] & controlEventType);
}
if(!fire) {
eventCheck = [registeredEventsByIndexPath objectForKey:indexPath];
fire = ([eventCheck integerValue] & controlEventType);
}
if(fire) {
[self.delegate toolkit:self indexPath:indexPath firedEvent:event];
}
}
Run Code Online (Sandbox Code Playgroud)
尽我所知,event.type这样做不起作用.我想避免使用子类,UIControl因为对于我想要做的事情来说,这是一种严重的过度杀伤.这里剩下的活动部件并不那么重要; 我想要的是在以下设置中使用 …