Iphone 使用initWithFrame创建UIView后,如何更改图像?

Iphone 使用initWithFrame创建UIView后,如何更改图像?,iphone,image,uiview,Iphone,Image,Uiview,我在这里有点迷路了。我有一个子类来自UIView,名为BallookGuy。我这样初始化它 - (id)initWithFrame:(CGRect)frame { UIImage* loadedImage = [UIImage imageNamed:@"balloonguy.png"]; CGRect rect = CGRectMake(0, 0, loadedImage.size.width, loadedImage.size.height); self = [super initWit

我在这里有点迷路了。我有一个子类来自UIView,名为BallookGuy。我这样初始化它

- (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;
}

我将其添加为子视图,一切都很好


然而,我不能做的是在事后改变形象,永远。我不会列出失败的尝试,但我该怎么办?

我认为当您更改
图像
属性时,您需要重新绘制视图,因此在这种情况下覆盖属性设置器可能是一个好主意:

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

我没有看到将图像添加到视图中的任何代码。