首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(iphone) UIImageView setImage:泄密?

(iphone) UIImageView setImage:泄密?
EN

Stack Overflow用户
提问于 2011-01-10 16:33:59
回答 4查看 7.5K关注 0票数 7

我正在通过self setImage改变UIImageview的形象: newImage;

看起来每次我使用newImage这样做的时候,之前的图像似乎都没有发布。

替换UIImageView镜像的正确方法是什么?

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-01-10 16:58:23

UIImageView setImage:永远不会泄露,除非你传递的图片没有被发布。

你的代码不会泄漏,如果你正在分配一个自动释放的图像到图像视图,如下所示。

代码语言:javascript
复制
UIImage *newImage = [UIImage imageNamed:@"sampleImage"];
[yourImageView setImage:newImage];

但是,如果您要将图像分配到某个地方,则必须手动释放它。

票数 6
EN

Stack Overflow用户

发布于 2011-01-21 02:01:22

是的,UIImageView setImage确实漏水了!实际上,泄漏的是CGImage,而不是UIImage (如仪器“分配”所示)

我使用BrutalUIImage而不是UIImage

代码语言:javascript
复制
@interface BrutalUIImageView : UIView {
    UIImage *image;
}

@property(nonatomic, retain) UIImage *image;

@end

@implementation BrutalUIImageView
@synthesize image;

- (void)setImage:(UIImage *)anImage {
    [image autorelease];
    image = [anImage retain];
    [self setNeedsDisplay];
}

- (void)drawRect:(CGRect)rect {
    [super drawRect:rect];
    [image drawInRect:rect];
}

- (void)dealloc {
    [image release];
    [super dealloc];
}

@end
票数 9
EN

Stack Overflow用户

发布于 2011-06-23 20:31:47

您的BrutalUIImageVIew类非常有趣,但是通过使用UIImage "drawInRect:“方法绘制图像,我丢失了PNG文件的透明区域。

你知道如何绘制图像,保持PNG的透明度吗?(当然,不使用UIImageVIew会在调用“setImage:”时泄漏CGImage )

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4644912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档