2011-01-31 76 views
0

我有一个iPad应用程序,基于用户在视图中触摸的位置在运行时添加按钮。如何通过所有控件进行操作并对某些操作进行操作?

现在 - 我需要一次删除所有这些按钮。

我已经设置每个按钮的标记是非常高的,并按照被删除的按钮的类型分组。

如何循环查看视图上的所有按钮,并将其删除,如果它们属于正确的分类?

+0

您应该考虑选择未回答的问题的答案。 – Moshe 2011-01-31 17:53:52

回答

6

这将删除所有UIButton。采用它来满足你的需求。如果你想使用标签,我会建议标记每个应该保留在视图中的按钮。

for (id object in [self.view subviews]) { 
    if ([object isKindOfClass:[UIButton class]]) { 
     [object removeFromSuperview]; 
    } 
} 

或者可以在每次的UIButton添加到的NSMutableSet当您创建,以及删除该组的每一个按钮,如果你不需要他们了。

+0

yup,并且我添加了一下标签....每个自定义按钮都有一个唯一的标签ID,当我通过控件循环时,如果找到了唯一ID,则它会被冲走。谢谢 – pithhelmet 2011-02-08 18:18:18

0

唯一基于标记的方法是UIView#viewForTag,它返回一个单独的对象。 (我相信这是你使用该标签添加的最后一个视图)。但是,您可以将上述代码适用于您的目的:

for (UIView *iView in [self.view subviews]) { 
    if (iView.tag == TARGET_CLASSIFICATION_TYPE) { 
     [iView removeFromSuperview]; 
    } 
}