2010-09-09 128 views
0

我在我的UIView的drawRect函數中以編程方式創建UIImage。有沒有一種方式,UIViewController負責這個UIView訪問該圖像(或其副本)的操作?從UIView到UIViewController的UIImage

欣賞任何指針,並提前致謝。

回答

1

如果您在drawrect中以編程方式創建的UIImage存儲爲UIView子類的屬性,則UIViewController可以訪問該圖像。很顯然,如果你使用的是Interface Builder,你需要將你的UIView子類連接到UIViewController類的IBOutlet來訪問屬性,但我相信你已經這樣做了。

e.g. in the drawrect function 

self.storedImage = [[UIImage alloc] init... ]; 

in the header for the UIView subclass 
UIImage* storedImage; 

@property (nonatomic, retain) UIImage* storedImage; 

非原子保留屬性可確保每次調用draw rect函數時都不會泄漏UIImages。

+1

在你的例子中,你正在引入一個內存泄漏... self.storedImage = [[UIImage alloc] init ...]; 由於storedImage是一個保留屬性。相反,你應該有... UIImage * newImage = [[UIImage alloc] init ...]; self.storedImage = newImage; [newImage release]; 或... self.storedImage = [[[[UIImage alloc] init ...] autorelease]; 你會驚訝我曾多次看到這個! :) – 2010-09-09 13:10:49