已解决:关闭自动布局并使用弹簧支柱
我有一个我一直在试验的 Pong 类型游戏,它使用 xib 文件中的三个 UIImageView 对象。一个 UIImageView 是球,通过 NSTimer 对象在屏幕上弹跳,另外两个是“桨”。
当用户点击屏幕时,球开始移动。上下拖动手指可移动右侧桨。桨只使用 10x60 PNG 文件作为背景。当用户点击屏幕时,球在运动,我想临时改变球拍的背景作为视觉效果。问题是,更改桨的背景似乎会重置 UIImageViews 在屏幕上的位置。iOS 是否有一些深奥的属性会在背景更改时重置视图或其他内容,或者我只是做错了?
.h 文件
@property (weak, nonatomic) IBOutlet UIImageView *paddleLeft;
@property (weak, nonatomic) IBOutlet UIImageView *paddleBall;
@property (weak, nonatomic) IBOutlet UIImageView *paddleRight;
.m 文件
@synthesize paddleRight;
@synthesize paddleLeft;
@synthesize paddleBall;
...
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog (@"touches began");
if (self.paused)
{
self.paused = NO;
NSLog (@"ball launch");
}
else
{
// hilite the paddle with different 10x60 image
self.paddleRight.image = [UIImage imageNamed:@"rect_2.png"];
}
}