2012-04-06 118 views
0

我已經使用IB添加了一個UIScrollVIew。然後使用下面的代碼,我給這個UIScrollView添加幾個按鈕。從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]; 
} 

現在我需要一種方法來刪除我從ScrollView中添加的這些按鈕。

注意:還有其他按鈕,圖像,標籤附加到UIScrollView。那些不應該被刪除。只有按我編程方式添加的按鈕才能從UIScrollView中刪除。

+0

我會接受@安東尼的解決方案,但如果你不確定的按鈕是如何被前面添加,跑他環路到可能存在的最大數量。在某些情況下,viewWithTag會變爲零,但發送[nil removeFromSuperview]沒有任何傷害; – danh 2012-04-06 15:01:48

回答

2

放在那些按鈕的標籤,那麼你就可以再次使用帶他們:

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

或保存這些按鈕在一個數組,然後你就可以這樣做。

如果你只想隱藏起來,你可以這樣做:

myButton.hidden = YES; 
+0

我正在輸入相同的東西,但想知道viewWithTag如何回答所有添加的按鈕。即將推出一系列要刪除按鈕的標籤。他是否需要循環調用它(以獲得所有這些)? – danh 2012-04-06 14:48:31

+0

我已經通過添加TAG屬性編輯了該問題。我上面添加的按鈕數量可能會發生變化(可能是2,5,7或10)。我怎麼能知道每個按鈕的標籤爲了刪除它? – user1315906 2012-04-06 14:50:45

+0

陣列的想法很有用,但聽起來有點可怕。另一件事:我的賭注是提問者有一些應用條件,使他想要按鈕被隱藏並重新顯示,而不是被移除和重新分配。沒有解決標籤問題,但只是隱藏它們肯定會更漂亮。 – danh 2012-04-06 14:50:51