我试图逐个删除我的图片;因为它没问题但是当我试图通过我的库添加新图像时,我认为我的代码删除了我的UIImageView。
-(IBAction)remove:(id)sender {
for (NSUInteger i = 0; i < [self.imageArray count]; i--) {
UIImageView *view = self.imageArray[i];
for (view in [self.view.subviews reverseObjectEnumerator])
if ([view isKindOfClass:[UIImageView class]]){
[view removeFromSuperview];
break;
}
}
}
答案 0 :(得分:0)
您正在展示的代码存在问题。我不确定为什么你有两个for循环,self.imageArray [i]甚至不是有效的Objective-C。
所以我假设你有一个包含子视图的视图(self.view),其中一些是UIImageViews,这些是你想要删除的视图。
我会这样做:
NSMutableArray* viewsToDelete = [NSMutableArray new];
for(UIView* view in self.view.subViews) {
if([view isKindOfClass:[UIImageView class]){
[viewsTodDelete addObject:view];
}
}
// Now remove these
for(UIImageView* imageView in viewsToDelete){
[imageView removeFromSuperView];
}
请注意,[subview removeFromSuperview]会从其父子视图数组中删除子视图,这是潜在的问题来源。
我不确定我的代码是否会解决您的原始问题,但此代码比您向我们展示的代码更简洁,更简单,因此它是一个很好的起点。