如何为 UIButton 添加操作
Posted
技术标签:
【中文标题】如何为 UIButton 添加操作【英文标题】:How to add action for UIButton 【发布时间】:2011-12-01 12:40:18 【问题描述】:我是 iPhone 技术的新手。请任何人告诉我。
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(0, 0, 100, 25);
btn.backgroundColor = [UIColor clearColor];
[btn setTitle:@"Play" forState:UIControlStateNormal];
[btn addTarget:self action:(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
btn.center = self.center;
[self addSubview:btn];
【问题讨论】:
不是关于这个问题,但你这里有内存泄漏。如果您稍后不调用 release ,请不要在按钮上调用 retain 。不需要保留,因为按钮不是 ivar 并且是自动释放的。 消除了内存泄漏。 ios 14 SDK: you can add action with closure callback: 【参考方案1】:使用这个
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self
action:@selector(aMethod:)forControlEvents:UIControlEventTouchDown];
[button setTitle:@"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[view addSubview:button];
【讨论】:
【参考方案2】:您使用 @selector() 指定选择器。所以,action 参数看起来像,
action:@selector(buttonClick:)
【讨论】:
【参考方案3】:这样使用
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(0, 0, 100, 25);
btn.backgroundColor = [UIColor clearColor];
[btn setTitle:@"Play" forState:UIControlStateNormal];
[btn addTarget:self action:@selector(btnTapped:) forControlEvents:UIControlEventTouchUpInside];
btn.center = self.center;
[self addSubview:btn];
并添加您的选择器方法
-(IBAction)btnTapped:(id)sender
【讨论】:
【参考方案4】:action:@selector(buttonClick:)
【讨论】:
【参考方案5】:Swift 代码:
button.addTarget(self, action:"action_button", forControlEvents:.TouchUpInside)
...
func action_button()
// implement me
【讨论】:
以上是关于如何为 UIButton 添加操作的主要内容,如果未能解决你的问题,请参考以下文章