2012-10-21 44 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

但問題是,我重複的圖像視圖大小,所以如果我不刪除它,當我改變圖像裏面,它保持舊的圖像大小 –

+0

[img sizeToFit] – Fredrik

回答

1

刪除東西的簡單方法是將它們設置爲nil。所以,你可能有

img = nil; 

你可以保留的UIImageView還活着,但只是改變了其顯示由以嶄新的形象更新的UIImageView的image財產的圖像。

當您從超級視圖中移除一個項目時,您只需將其從屏幕上取下即可。它仍在記憶中。

從你的代碼中不清楚的東西是你如何堅持對象。我假設你將UIImageView設置爲某處的某個屬性。如果是這樣的話,我會認爲上面的代碼如下(我使用了一個名爲mainImageView屬性爲例)

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

,或者您甚至可以重用UIImageView屬性,您必須每次(這只是假設你想要一次顯示一個圖像),只需用新的圖像替換圖像即可。

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

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

是的,我正在做一個imagepickerview和每次我觸摸一個圖像我創建一個你選擇什麼和一個imageview與圖像uiimage。所以在這之前,我必須清理這些對象,因爲這個操作被稱爲severa時間。 –

+0

我根據我認爲你的意思更新了我的答案。如果你有一個UIImageView屬性,那麼你可以每次換一個新的圖像。 – Walter

+0

因此,最好創建一次,然後重寫它,創建每次你想要顯示和圖像。真正? –