我正在使用源代码来加载/旋转/缩放/移动从blogUIImage
。用一个按钮删除许多UIImages
我需要一次删除所有图像与一个按钮,我想这一点:
[holderView removeFromSuperview];
但只能删除创建的不是所有的人的最后一个。
编辑
我在应用程序的另一个子视图,我不希望他们删除“按钮,的UIImageView,UIScrollView的..等”。
我正在使用源代码来加载/旋转/缩放/移动从blogUIImage
。用一个按钮删除许多UIImages
我需要一次删除所有图像与一个按钮,我想这一点:
[holderView removeFromSuperview];
但只能删除创建的不是所有的人的最后一个。
编辑
我在应用程序的另一个子视图,我不希望他们删除“按钮,的UIImageView,UIScrollView的..等”。
我认为你可以使用的NSMutableArray来的UIView的
嵌入的商店名单该代码的.h
@property (nonatomic, retain) NSMutableArray *imgList;
林.m文件
@synthesize imgList;
视图加载后
NSMutableArray *imgList = [[NSMutableArray alloc] init];
在“imagePickerController:di dFinishPickingMediaWithInfo:”添加
[imgList addObject:holderView];
当你需要删除使用
for(UIView *tempView in imgList) {
[tempView removeFromSuperview];
}
试试这个代码
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];
}
...或者你可以只检查那种'UIView'类的一样:'在自我(UIView的* V。如果([v isKindOfClass:[UIImageView class]])[v removeFromSuperview];' – holex
@holex你是否访问过上面提到的用户教程,在tutorial中有holderView是UIView,里面是添加UIImageView的,所以为保持内存效率,也应删除holderView和其子视图UIImageView的UIView。 –
最大限度地减少它可以被写入的代码:[imagesToRemove makeObjectsPerformSelector:@selector(removeFromSuperview)] – alex
不幸的是,在viewDidLoad中有一个警告显示我“未使用的变量imgList”,它在我尝试时没有做任何事情。 – Shamlan
只需在@implementation后写** @ synthesize imgList; **。我编辑了我的答案。 – krotov
@Shamlan我的答案对你有用吗? – krotov