2013-07-20 34 views
0

我在Missiles.m文件中写入以下自定义初始化(从UIViewMissile.h继承):自定义初始化“initWithImage”不显示图像鉴于

-(id)initWithMissileImage: (UIImage *)image 
{ 
    CGRect missileFrame = CGRectMake(0, 0, 20, 20); 
    self = [super initWithFrame:missileFrame]; 

    if (self) { 
     _missileImage = image; //these are declared as strong properties 
     _deltaX = 0; 
     _deltaY = -1; 
    } 
    return self; 
} 

,并在我的ViewController.m,我呼吁初始化为这样的:

-(void)fireMissileWithDeltaX: (float)x andY: (float)y 
{ 
    Missiles *missile = [[Missiles alloc] initWithMissileImage:[UIImage imageNamed:@"missile.png"]]; 
    //other code here... 
    [self.view addSubview:missile]; 
} 

但是,导弹的.png图像无法显示。我有另一种方法尝试使用一个绘制的方框来测试代码是否正常工作,并且工作正常。

我在做什么错?谢谢您的帮助!

+1

初始化后你在哪里使用'_missileImage'? – StatusReport

回答

1

随着你发布的代码,你还没有以任何方式绘制图像。在设置属性后,将其放入您的自定义初始化程序中。

UIImageView *missileView = [[UIImageView alloc] initWithImage:_missileImage]; 
[self addSubview:missileView]; 

另外,如果你企图使用_missileImage其他地方显示出来,请张贴代码。

+0

代码做到了 - 谢谢! – daspianist

1

看来你不会对图像做任何事情而不是保留参考。您有两种选择:

1)更新您的Missile类以向其自身添加UIImageView并在其中显示图像。

2)在Missile类实现drawRect:方法和绘制图像那里。

选项1可能更容易。