更新:由于我无法解决这个问题,我做了一个丑陋的解决方法(添加了另一个标签)。
我目前正在尝试在以下步骤中设置 UILabel 的位置:
1) 更新标签文本
lblFirstWheelDescription.text = @"Select the tooth shade";
2) 为 UILabel 设置新位置
CGRect newframe = lblFirstWheelDescription.frame;
newframe.origin.y += 100;
lblFirstWheelDescription.frame = newframe;
现在让我感到困惑的是什么。第一次调用该方法时,什么都没有发生(UILabel 不会像之前设置的那样移动)。在第二次调用(相同的方法)时,lblFirstWheelDescription.frame 的初始 y 值没有增加 100。在第二次调用时再次设置 y 值后,标签移动并且 y 值增加。
我试图强制重新绘制如下 - 不会改变任何东西:
[self.superview setNeedsLayout];
有人知道这种行为或知道这里有什么问题吗?
伊卡威斯