2012-03-27 93 views
2

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

-(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]; 
} 
+4

为什么以编程方式创建按钮?为什么不事先在IB中创建它,但是使用'hidden = YES',并且只要按下第一个按钮就可以取消隐藏它? – yuji 2012-03-27 22:55:01

+3

你正在泄漏'theButton'。你为什么要保留它? – 2012-03-27 22:56:14

+0

也为什么你从方法签名中排除了发件人?即 - (IBAction)addCash:(id)sender {...} ?? – bennythemink 2012-03-27 23:01:25

回答

1

如果你的按钮使用UITableViewwith custom cell平原增添了不少。如果你只是添加新的按钮来查看你会得到一个性能问题 - 你所有的按钮将被同时加载。 UITableView可以管理这种情况并卸载未使用的单元。