只需一个按钮即可删除许多UIImages

时间:2013-01-10 14:28:54

标签: objective-c xcode uiimageview uiimage

我正在使用源代码从blog加载/旋转/缩放/移动UIImage

我需要用一个按钮一次删除所有图像,我试过这个:

[holderView removeFromSuperview];

但它只删除最后创建的并不是全部的。

修改

我在应用中有另一个子视图,我不希望它们被删除"按钮,UIImageView,UIScrollView ..等等#34;。

2 个答案:

答案 0 :(得分:0)

试试此代码

NSArray *viewsToRemove = [self.view subviews];
for (UIView *v in viewsToRemove)
{
    [v removeFromSuperview];
}

希望它可以帮到你

编辑: -

更有效的删除

NSArray *viewsToRemove = [self.view subviews];
    for (UIView *v in viewsToRemove)
    {
        NSArray *imagesToRemove = [v subviews];
        for (UIImageView *i in imagesToRemove)
        {
            [i removeFromSuperview];
        }
        [v removeFromSuperview];
    }

第二次编辑: -

NSArray *viewsToRemove = [self.view subviews];
    for (UIView *v in viewsToRemove)
    {
        NSArray *imagesToRemove = [v subviews];
        for (UIImageView *i in imagesToRemove)
        {
            i.image = nil;
        }
        //[v removeFromSuperview];
    }

答案 1 :(得分:0)

我认为您可以使用NSMutableArray来存储UIView的列表

将此代码嵌入.h

@property (nonatomic, retain) NSMutableArray *imgList;

我.m文件

@synthesize imgList;

查看加载后

NSMutableArray *imgList = [[NSMutableArray alloc] init];

在“imagePickerController:didFinishPickingMediaWithInfo:”的末尾添加

[imgList addObject:holderView];

当您需要删除使用

for(UIView *tempView in imgList) {
    [tempView removeFromSuperview];
}