如何使用单个方法和多个UIControlEvents声明单个按钮?
请帮助谢谢
- (void)viewDidLoad
{
[super viewDidLoad];
UIButton *button1=[UIButton buttonWithType:UIButtonTypeRoundedRect];
button1.frame=CGRectMake(100, 100, 100, 60);
[self.view addSubview:button1];
[button1 addTarget:self action:@selector(button1:) forControlEvents:UIControlEventTouchUpInside];
[button1 addTarget:self action:@selector(button1:) forControlEvents:UIControlEventTouchUpOutside];
[button1 addTarget:self action:@selector(button1:) forControlEvents:UIControlEventTouchDragInside];
[button1 addTarget:self action:@selector(button1:) forControlEvents:UIControlEventTouchDown];
}
答案 0 :(得分:2)
您从UIButton获得的UIEvent不会向您提供有关哪个UIControlEvent导致它的任何信息。为每种事件类型注册单独的方法(推荐的解决方案)或者创建自己的UIControl子类并使其行为不同。
在内部,UIControl子类基本上使用sendActionsForControlEvents:方法,这意味着他们可以选择将他们想要的任何内容作为参数。
至于如何知道,简单的答案是为每个控制事件设置一个单独的方法。