我有一个生产应用程序,在使用 Xcode5 构建时运行良好。该应用程序在 iOS8 下的生产中运行良好。
使用 xcode6 构建时,发生了一些奇怪的事情。根据用户的选择,我通过调用方法设置了多个 UILabels 和 UIImage 的位置,以以下代码为例:
CGRect frame1 = _lblRedJudge1Score.frame;
frame1.origin.x = 253;
frame1.origin.y = 610;
frame1.size.width = 25;
frame1.size.height = 25;
_lblRedJudge1Score.frame = frame1;
_imageRedJudge1Score.frame = frame1;
该方法正确设置了_lblRedJudge1Score和_imageRedJude1Score的位置。然后, View 上的任何用户交互(例如按下按钮)都会导致位置设置返回到 StoryBoard 上显示的位置。在早期版本的 Xcode 中不会发生这种情况。
就好像 View 被重置并忘记了我上面设置的位置设置。看来 UIView 根据 StoryBoard 设置被重写/更新,并丢失了我在方法中调用的编程设置。
注意:标签和图像对象在 .h 文件中定义为强的、非原子的。这两个对象在 View 中都没有任何约束。用于设置位置的方法仅被调用一次。
这是一个我不理解的新功能,需要更新代码,还是 xcode6 中的一个错误?这个问题在模拟器和实际设备中都会出现。
最佳答案
layoutSubview
不再接到电话。 这可能是你的问题。 检查this出来。
关于ios8 - 使用 Xcode6 对 UILabel 和 UIImage 框架的编程更改会丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25916174/