的UILabel而使其它对象重置iOS上的位置(UILabel causing other obje

2019-11-01 16:35发布

我学习为iPhone编程,并想提出一个简单的球反弹游戏,其中一球向上反弹的平台。 游戏作品,当它到达屏幕上方1/4的球看似向上移动(屏幕上的平台向下移动,类似于涂鸦跳跃),努力实现比分反超然而,当我有问题。 当球到达屏幕上方1/4,我添加到分数和运行的代码如下两行:

NSString *nssScore = [NSString stringWithFormat:@"%i", score];
lblScore.text = nssScore;

lblScore是一个UILabel并链接到视图中的文本标签。 每一次在屏幕上的文字更新,球和所有平台返回到它们的起始位置,不过球保持其速度。 通过运行线调试线的时候,我可以运行没有错误的代码两行,当文本在下次刷新屏幕上改变问题的所在。 主游戏循环和帧速率运行使用以下行的代码:

[NSTimer scheduledTimerWithTimeInterval:1.0/60 
   target:self selector:@selector(gameLoop) userInfo:nil repeats:YES];

Answer 1:

这是布局约束的问题。 这个问题实际上并没有什么关系的标签,它只是设置标签的值触发重绘(或布局,我不太确定这方法被调用)。 最简单的办法是在IB(在屏幕的右侧,从最左边的标签)关闭自动布局。 或者,您可以通过动画的约束条件,而不是设置帧移动球。



文章来源: UILabel causing other objects to reset position on iOS