我有一个按钮,我希望Touch Up Inside和Touch Up Outside动作都采用相同的方法。然后,我希望该方法可以解决发生的事件,如下所示:
- (IBAction)buttonMethod:(UIButton *)sender forEvent:(UIEvent *)event {
if (event == UIControlEventTouchUpInside)
NSLog(@"Touch up inside!");
if (event == UIControlEventTouchUpOutside)
NSLog(@"Touch up outside!");
}
}
这似乎不起作用,因为触摸事件似乎继承自UIControl,UIControl与UIEvent不在同一个Universe中。有没有办法告诉我的方法哪个动作导致调用该方法?
答案 0 :(得分:3)
将其拆分为两种方法,如果出于某种原因,您希望您的逻辑只是一个传递消息。
- (IBAction)buttonMethod:(UIButton *)sender forEvent:(UIEvent *)event controlEvent:(UIControlEvents)event {
if (event == UIControlEventTouchUpInside)
NSLog(@"Touch up inside!");
if (event == UIControlEventTouchUpOutside)
NSLog(@"Touch up outside!");
}
- (IBAction)buttonUpInside:(UIButton *)sender forEvent:(UIEvent *)event {
[self buttonMethod:sender forEvent:event controlEvent:UIControlTouchUpInside];
}
- (IBAction)buttonUpOutside:(UIButton *)sender forEvent:(UIEvent *)event {
[self buttonMethod:sender forEvent:event controlEvent:UIControlTouchUpOutside];
}