2012-03-27 9 views
2

Ich versuche, programmgesteuert ein UIButton zu erstellen. Ich habe eine Schaltfläche namens "addCash" (die bereits in Interface Builder erstellt wurde), nach dem Tippen auf diese Schaltfläche möchte ich eine andere Schaltfläche dynamisch angezeigt werden. Diese Schaltfläche funktioniert einwandfrei, wenn sie in viewDidLoad ausgeführt wird, aber das ist nicht das, was ich möchte, da "addCash" angetippt werden muss, bevor diese neue Schaltfläche erstellt werden soll. Dies ist, was ich bisher ...Tippen Sie auf UIButton, um programmgesteuert ein anderes UIButton zu erstellen

-(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

Warum die Schaltfläche programmgesteuert erstellen? Warum sollte es nicht zuvor in IB erstellt werden, sondern mit "hidden = YES", und es einfach einblenden, wenn die erste Taste gedrückt wird? – yuji

+3

Sie lecken 'theButton'. Warum behalten Sie es? –

+0

Warum haben Sie auch den Absender aus der Methodensignatur weggelassen? d. h. - (IBAction) addCash: (id) Absender {...} ?? – bennythemink

Antwort

1

Wenn Sie Normal viele Tasten UITableViewwith custom cell verwenden hinzuzufügen. Wenn Sie nur neue Schaltflächen hinzufügen, erhalten Sie ein Leistungsproblem - alle Schaltflächen werden gleichzeitig geladen. UITableView kann diese Situation verwalten und unbenutzte Zellen entladen.

Verwandte Themen