从UIView到UIViewController的UIImage
问题描述:
我在我的UIView的drawRect函数中以编程方式创建UIImage。有没有一种方式,UIViewController负责这个UIView访问该图像(或其副本)的操作?从UIView到UIViewController的UIImage
欣赏任何指针,并提前致谢。
答
如果您在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。
在你的例子中,你正在引入一个内存泄漏... 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