点击 UIButton 以编程方式创建另一个 UIButton

Posted

技术标签:

【中文标题】点击 UIButton 以编程方式创建另一个 UIButton【英文标题】:Tap UIButton to create another UIButton programmatically 【发布时间】:2012-03-27 22:53:05 【问题描述】:

我正在尝试以编程方式创建 UIButton。我有一个名为“addCash”的按钮(已在界面生成器中创建),点击此按钮后,我希望另一个按钮动态显示。在 viewDidLoad 中完成时,此按钮工作正常,但这不是我想要的,因为在创建此新按钮之前需要点击“addCash”。这就是我目前所拥有的......

-(IBAction) addCash
UIButton *theButton = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
theButton.frame = CGRectMake(80, 50, 150, 40);
[theButton setTitle:@"title" forState:UIControlStateNormal];
[theButton addTarget:self action:@selector(test:) forControlEvents:UIControlEventTouchUpInside];
[theButton setBackgroundImage:[UIImage imageNamed:@"edit.jpg"] forState:UIControlStateNormal];

[self.view addSubview:theButton]; 

【问题讨论】:

为什么要以编程方式创建按钮?为什么不事先在 IB 中创建它,而是使用 hidden = YES,然后在按下第一个按钮时取消隐藏它? 你在泄露theButton。为什么要保留它? 还有为什么你在方法签名中忽略了发件人?即 -(IBAction) addCash:(id)sender ... ?? 我需要以编程方式创建按钮,因为最终我计划创建未知数量的按钮(1 到 100) @bennythemink 添加sender 不是必需的,如果您不使用该值,那么为什么要麻烦... 【参考方案1】:

如果您简单地添加大量按钮,请使用 UITableView with custom cell。如果您只是添加新按钮来查看,您将遇到性能问题 - 所有按钮都将同时加载。 UITableView 可以管理这种情况并卸载未使用的单元格。

【讨论】:

以上是关于点击 UIButton 以编程方式创建另一个 UIButton的主要内容,如果未能解决你的问题,请参考以下文章

在 UIButton 单击时以编程方式创建 Segue 或推送到另一个视图控制器

以编程方式创建 UIButton 比使用情节提要模糊

如何更改以编程方式创建的一组 UIButton 的标题颜色?

以编程方式创建 VC,使用公式中文本字段中的整数并在点击 UIButton 时执行计算

如何以编程方式为处于触摸状态的 UIButton 创建灰色叠加层?

以编程方式创建的 UIButton 不可见