如何为 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 添加操作的主要内容,如果未能解决你的问题,请参考以下文章

如何为客户 UIButton 设置属性

如何为 UIButton 创建动态叠加层?

如何为为 UIButton 创建的自定义背景艺术实现 scale-9 (9-slice)

如何为 UIButton 设置自定义渐变背景?

如何为 UIButton 设置默认状态图像?

如何为 UIControl/UIButton 动画从一种状态到另一种状态的过渡? [复制]