开发者

After creating a UIView with initWithFrame, how do I change the image?

I'm a bit lost here. I have a class subclassed from UIView called BalloonGuy. I initialize it like this.

- (id)initWithFrame:(开发者_运维问答CGRect)frame {

UIImage* loadedImage = [UIImage imageNamed:@"balloonguy.png"];

CGRect rect = CGRectMake(0, 0, loadedImage.size.width, loadedImage.size.height);

self = [super initWithFrame:rect];
image=[loadedImage retain];

self.opaque = YES;
self.backgroundColor = [UIColor clearColor];

return self;

}

I add it as a subview and everything is great.

What I can't do, however is change the image afterwards, ever. I won't list my failed attempts but what do I do?


I think you'll need to redraw your view when you change your image property, so overriding the property setter in this case may be a good idea:

- (void) setImage:(UIImage *) im {
   [image release];
   image = nil;
   image = [im retain];
   [self setNeedsLayout];
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜