删除图像

时间:2015-07-14 20:03:06

标签: objective-c

我试图逐个删除我的图片;因为它没问题但是当我试图通过我的库添加新图像时,我认为我的代码删除了我的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;

        }

 }

}

1 个答案:

答案 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]会从其父子视图数组中删除子视图,这是潜在的问题来源。

我不确定我的代码是否会解决您的原始问题,但此代码比您向我们展示的代码更简洁,更简单,因此它是一个很好的起点。