2012-12-06 81 views
1

我有一個UIImageView對象,我實例化並變成我的iOS應用程序內的屬性。我在我的viewDidLoad方法中初始化這個UIImageView對象的屬性,但是,我需要稍後用另一種方法更改包含在UIImageView對象內的圖像。當我這樣做時,出於某種原因,我只是將新圖像疊加在舊圖像上。我想要做的只是調整框架大小,並用新的圖像替換舊圖像。如何更改iOS應用程序內的UIImageView內的圖像?

下面是相關代碼:

在我的viewDidLoad方法:

imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 250, 300, 200)]; 
imageView.image = [UIImage imageNamed:@"firstImage.png"]; 
[self.view addSubview:imageView]; 

和我的方法裏,我希望作出改變:

imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 250, 200, 300)]; 
imageView.image = [UIImage imageNamed:@"secondImage.png"]; 
[self.view addSubview:imageView]; 

請記住,我不想僅僅改變圖像,而且還要改變圖像大小以適應新圖像。任何人都可以看到我做錯了什麼?

回答

3

您正在創建imageview的另一個實例。您需要訪問相同的對象並在那裏更改框架和圖像。

試試這個,

創建imageView在類物業,

在.h文件中,

@property(nonatomic, retain) UIImageView *imageView; 

然後在viewDidLoad

self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 250, 300, 200)]; 
self.imageView.image = [UIImage imageNamed:@"firstImage.png"]; 
[self.view addSubview:imageView]; 

的排在第二方法,只需更改框架和圖像,如下所示,

self.imageView.frame = CGRectMake(10, 250, 200, 300); 
self.imageView.image = [UIImage imageNamed:@"secondImage.png"]; 

根據您的代碼,您正在爲imageView創建單獨的實例並添加爲子視圖,這會導致它疊加到另一個實例上。相反,您需要創建一個如上所示的單個實例,並根據需要修改其框架和圖像屬性。

+1

非常感謝您的解決方案,它的工作! – syedfa

相關問題