如何从superView中删除所有内容而不仅仅是最后一项?

时间:2011-04-12 17:08:03

标签: iphone uiview

在我的应用程序中,我必须同时绘制某些复选框,并使用单个函数添加所有这些复选框。现在,当用户点击其中一个时,所有这些复选框都应从超级视图中删除,目前它只是删除最后一个。此外,我有问题识别那些复选框,如单击哪一个。我知道它应该通过Tag属性完成,但不知道应该如何实现它。 任何建议。

2 个答案:

答案 0 :(得分:0)

删除所有子视图

int numberOfSubviews = [[yourView subviews] count];

    for(int i=0;i<numberOfSubviews-1;i++
    {
      [[youView subviews]objectAtIndex:i]removeFromSuperView];
    }

//这将留下您最后添加的复选框....第一个保留1 to numberOfSubview的循环....

使用标签属性...... 在创建复选框对象时使用

checkBoxObject.tag = i;

//我正在考虑我在循环中使用的looop计数 添加复选框。

然后,只要您需要checkbox

的对象
[yourViewonwhichYouAddedCheckBox viewWithTag:<your tag >];

由于

答案 1 :(得分:0)

用于识别“复选框”或更好地表示动作方法中的任何视图:

- (void)someActionHandler:(id)sender
{
  UIView *actionOriginView = (UIView *)sender;
  NSLog(@"this action came from view:%d", actionOriginView.tag);
}

为了分配标签,您可以在实例化时使用IB或代码;

UIView *myFunkyView = [[UIView alloc] initWithFrame:CGRectZero];
myFunkyView.tag = 1337;

从超级视图中删除一堆视图 - 假设他们的标记设置为10 - 15;

for (int i=10;i <= 15;i++)
{
  UIView *childView = [superview viewWithTag:i];
  [childView removeFromSuperview];
}