2012-04-06 14 views
0

Ich habe ein UIScrollView mit IB hinzugefügt. Dann benutze ich den folgenden Code und füge ein paar Knöpfe zu diesem UIScrollView hinzu.Entfernen von Schaltflächen aus einem UIScrollView

for (int index=0; index<3;index++) 
{ 
    UIButton* button=[UIButton buttonWithType:UIButtonTypeRoundedRect]; 

    [button setTitle:buttonTitle forState:UIControlStateNormal]; 
    [button setFrame:CGRectMake(18,200,300,45)]; 
    [button setTag:100+index]; 
    [button addTarget:self action:@selector(butclick:) forControlEvents:UIControlEventTouchUpInside]; 
    [self.scrollView addSubview:button]; 
} 

Jetzt brauche ich eine Möglichkeit, diese Tasten, die ich von der ScrollView hinzugefügt habe, zu entfernen.

Hinweis: Am UIScrollView sind weitere Schaltflächen, Bilder und Beschriftungen vorhanden. Und diese sollten nicht entfernt werden. Es sind nur die Buttons, die ich programmatisch hinzugefügt habe, die aus dem UIScrollView entfernt werden sollen.

+0

I @ Antonio-Lösung akzeptieren würde, aber wenn Sie sich nicht sicher sind, wie viele Tasten früher hinzugefügt wurden, führen seine Schleife in die obere maximale Anzahl, die da sein könnte. In einigen Fällen wird viewWithTag dann auf Null gesetzt, aber das Senden von [nil removeFromSuperview] ist nicht schädlich; – danh

Antwort

2

Setzen Sie einen Tag auf diesen Tasten, dann können Sie sie nehmen wieder mit:

for (int index=0; index<3;index++) 
{ 
    UIButton *myButton = (UIButton *)[self.scrollView viewWithTag:100+i]; 
    [myButton removeFromSuperView]; 
} 

oder die Tasten in einem Array speichern, und dann können Sie das gleiche tun.

Und wenn man ihnen nur ausblenden möchten, können Sie tun:

myButton.hidden = YES; 
+0

Ich tippte die gleiche Sache, aber ich frage mich, wie der viewWithTag alle hinzugefügten Schaltflächen beantwortet. War im Begriff, eine Reihe von Tags für die zu entfernenden Schaltflächen vorzuschlagen. Würde er das in einer Schleife anrufen müssen (um alle zu bekommen)? – danh

+0

Ich habe die Frage bearbeitet, indem ich die TAG-Eigenschaft hinzugefügt habe. Die Anzahl der Schaltflächen, die ich oben hinzufüge, könnte sich ändern (es könnte 2, 5, 7 oder 10 sein). Wie könnte ich die Tags jeder dieser Schaltflächen kennen, um sie zu entfernen? – user1315906

+0

Die Array-Idee funktioniert, klingt aber irgendwie schrecklich. Eine andere Sache: Ich wette, dass der Fragesteller eine App-Bedingung hat, die ihn dazu bringt, dass die Schaltflächen ausgeblendet und erneut angezeigt, nicht entfernt und neu zugewiesen werden sollen. Löst die Tag-Frage nicht, aber es wäre sicher schöner, sie einfach zu verstecken. – danh

Verwandte Themen