如何从iOS 7中的视图中删除所有按钮?

时间:2013-10-02 04:55:16

标签: iphone ios objective-c

如何使用iOS 7从视图中删除所有按钮?

以下代码适用于早期版本的iOS:

                for(UIView *view in cell.subviews){
                    if([view isMemberOfClass:[UIButton class]]){
                        [(UIButton *)view removeFromSuperview];
                    }
                }

4 个答案:

答案 0 :(得分:6)

首先,您需要从视图中获取所有子视图,然后检查所有视图是否为UIButton的类型。有关详细信息,请参阅此...

for (UIView *view in self.view.subviews)
    {
        if ([view isMemberOfClass:[UIButton class]])
        {
            [(UIButton *)view removeFromSuperview];
        }
    }

答案 1 :(得分:4)

看起来你根本就没有在子视图中循环。假设这是一个视图控制器:

NSArray * allSubviews = [self.view subviews];
for(UIView view in allSubviews)
{
    if([view isMemberOfClass:[UIButton class]])
    {                                     
        [view removeFromSuperview];                                 
    }
}

您也不需要在此处“view”投射“UIButton *”,因为“UIView”的基类是实现“removeFromSuperview”的内容。

答案 2 :(得分:2)

很抱歉迟到的回复。实际上这部分代码将一直运行到iOS 6.0,但在iOS 7.0及更高版本中,代码无效。

最后,我找到了使用以下语句从UIScrollview删除所有子视图的解决方案。

[scrollView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)].

答案 3 :(得分:0)

尝试,这将有效

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