自定义初始化程序“initWithImage”未在视图中显示图像

时间:2013-07-20 21:03:37

标签: ios ios6

我在Missiles.m文件中写了以下自定义初始值设定项(Missile.h继承自UIView):

-(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图像无法显示。我或者只是尝试使用一个绘制的方框来测试代码是否有效,并且它工作正常。

我做错了什么?谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

使用您发布的代码,您没有以任何方式绘制图像。在设置属性后将其放入自定义初始值设定项中。

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

或者,如果您在其他地方使用_missileImage尝试显示它,请发布该代码。

答案 1 :(得分:1)

除了保留参考之外,您似乎对图像没有任何作用。您有两种选择:

1)更新您的Missile课程,为自己添加UIImageView并在那里显示图片。

2)在drawRect:课程中实施Missile方法并在那里绘制图像。

选项1可能更容易。