2012-10-21 4 views
0

iPad 용 iOS 앱을 개발 중입니다. 내가 코드로 만든 두 개체 (UIImage 및 UIImageView)를 삭제하고 싶습니다.코드로 만든 UIImageView를 삭제하려면 어떻게해야합니까?

UIImage *imatgetemporal = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 
[popover dismissPopoverAnimated:YES]; 

UIImageView *img = [[UIImageView alloc] initWithImage:imatgetemporal]; 

어떻게하면됩니까? 감사합니다.

+1

UIImage를 제거 할 필요가 없습니다. 다음과 같이 imageView를 제거 할 수 있습니다 [img removeFromSuperView]; [img release]; – Fredrik

+0

그러나 문제는 내가 imagesview 크기로 되풀이 되었기 때문에 삭제하지 않으면 내부 이미지를 변경할 때 이전 이미지 크기가 유지됨 –

+0

[img sizeToFit] – Fredrik

답변

1

쉽게 삭제할 수있는 방법은 nil입니다. 그래서 당신은

img = nil; 

당신은 살아있는 UIImageView을 유지하지만, 단순히 새로운 이미지로있는 UIImageView의 image 속성을 업데이트하여 표시하는 이미지를 바꿀 수있을 수 있습니다.

수퍼바이저에서 항목을 제거하면 화면에서 꺼내기 만하면됩니다. 그것은 여전히 ​​기억에 남습니다.

코드에서 내게 불분명 한 점은 객체를 지속시키는 방법입니다. 나는 여러분이 어딘가에 재산으로 UIImageView을 설정하고 있다고 가정합니다. 그런 경우라면, 당신의 코드는 위의

UIImageView *img = [[UIImageView alloc] initWithImage:imatgetemporal]; 
[self setMainImageView:img]; 

을 (내가 예를 들어 mainImageView라는 속성을 사용하고 있습니다) 또는 당신도이 당신 만 가정하면 (각 시간을 가지고 UIImageView 속성을 다시 사용할 수 있습니다 같다고 기대 한 번에 하나의 이미지 만 표시하려는 경우) 이미지를 새 이미지로 바꿉니다.

UIImage *imatgetemporal = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 
[popover dismissPopoverAnimated:YES]; 

[[self mainImageView] setImage:imatgetemporal]; 
+0

예, imagepickerview 그리고 내가 이미지를 만질 때마다 나는 당신이 선택한 이미지와 이미지가있는 이미지를 생성합니다. 그래서 그 전에는 개체를 깨끗이해야합니다. 왜냐하면이 동작을 세번 번 (severa times)이라고하기 때문입니다. –

+0

나는 당신이 말하는 것에 근거하여 나의 대답을 업데이트했다. UIImageView 속성이 있으면 매번 새로운 이미지로 바꿀 수 있습니다. – Walter

+0

한 번 작성한 다음 다시 작성하면 더 이상 표시하고 이미지를 작성하는 것이 좋습니다. 참된? –

관련 문제