2013-01-10 4 views
0

blog에서 UIImage을로드/회전/확대/이동하는 소스 코드를 사용하고 있습니다. 나는 하나의 버튼으로 한 번에 모든 이미지를 제거 할 필요가하나의 버튼으로 많은 UIImages 제거하기

는,이 시도 :

[holderView removeFromSuperview]; 

을하지만 그것은뿐만 아니라 그들 모두를 만들어 마지막 하나를 삭제합니다.

편집 나는 내가 그들을 "버튼, UIImageView에,있는 UIScrollView .. 등"제거하지 않으려는 응용 프로그램의 다른 파단이있다.

답변

0

은이 코드는 뷰를로드 한 후

@property (nonatomic, retain) NSMutableArray *imgList; 

임하는 .m 파일

@synthesize imgList; 

을있는 .h하는 당신의 UIView의

삽입의 저장 목록에있는 NSMutableArray를 사용할 수 있다고 생각

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

"imagePickerController : di의 끝 부분 dFinishPickingMediaWithInfo : "당신이 사용을

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

점에서 운이있는 viewDidLoad에서 "사용하지 않는 변수 imgList을"나를 보여주는 경고가 그리고 내가 그것을 시도 할 때 그것은 아무것도하지 않았다 .. – Shamlan

+0

그냥 ** @ 합성 imgList 쓰기; @implementation 후 **. 나는 내 대답을 편집했다. – krotov

+0

@Shamlan 내 대답이 당신에게 효과가 있습니까? – krotov

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]; 
    } 

SECOND 편집 : -

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

를 제거해야하는 경우

[imgList addObject:holderView]; 

을 추가 ... 아니면 그냥 같은'UIView' 클래스의 종류를 확인할 수 있습니다 :'자기의 (UIView의의 *의 V에 대해. (v isKindOfClass : [UIImageView 클래스]) [v removeFromSuperview]; ' – holex

+0

@holex 사용자가 위에서 언급 한 튜토리얼을 방문했는지, 자습서에 holderView가 있으며 UIView가 있고 그 안에 UIImageView가 추가되어 있으므로 holderView 인 UIView와 서브 뷰 UIImageView도 메모리 효율성을 위해 제거되어야합니다. –

+0

코드 작성을 최소화하려면 다음을 수행하십시오. [imagesToRemove makeObjectsPerformSelector : @selector (removeFromSuperview)] – alex