从UIScrollView中删除按钮

问题描述:

我已经使用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

放在那些按钮的标签,那么你就可以再次使用带他们:

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