我只是在学习objective-c,所以我的问题可能很简单。我正在创建一个简单的游戏,该游戏具有用于跟踪玩家得分的标签。游戏运行良好,计算分数没有问题。当我将标签的 text 属性设置为存储在我的 score 变量中的值时,就会出现问题。
score += (int)someFloatValue;
NSString *scoreText = [NSString stringWithFormat:@"%i", score];
scoreLabel.text = scoreText;
在我的游戏循环中,我总是设置这个文本。因此,即使在分数超过零之前,我也会不断地将文本设置为零值。到目前为止没有问题。一旦玩家得分,我的 score 变量中的值就会改变。仍然没有问题。但是,当我使用新分数更新标签的文本时,我所有 UI 元素的位置都会重置回最初在界面生成器中设置的位置。没有崩溃。并且分数会正确显示在标签中。只是每个 UI 元素都会被移动。
不确定这是否有帮助,但我认为我设置了一切正确:
h 文件:
@interface ViewController : UIViewController{
UILabel *scoreLabel;
NSInteger score;
}
@property (nonatomic, retain) IBOutlet UILabel *scoreLabel;
@property (nonatomic) NSInteger score;
.m 文件:
@interface ViewController ()
@end
@synthesize scoreLabel;
@synthesize score;