我在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图像无法显示。我或者只是尝试使用一个绘制的方框来测试代码是否有效,并且它工作正常。
我做错了什么?谢谢你的帮助!
答案 0 :(得分:1)
使用您发布的代码,您没有以任何方式绘制图像。在设置属性后将其放入自定义初始值设定项中。
UIImageView *missileView = [[UIImageView alloc] initWithImage:_missileImage];
[self addSubview:missileView];
或者,如果您在其他地方使用_missileImage
尝试显示它,请发布该代码。
答案 1 :(得分:1)
除了保留参考之外,您似乎对图像没有任何作用。您有两种选择:
1)更新您的Missile
课程,为自己添加UIImageView
并在那里显示图片。
或
2)在drawRect:
课程中实施Missile
方法并在那里绘制图像。
选项1可能更容易。