我有一个生产应用程序,使用Xcode5构建时工作正常。该应用程序在iOS8下的生产中运行良好。
使用xcode6构建时,会发生一些奇怪的事情。根据用户选择,我通过调用方法设置几个UILabel和UIImages的位置,使用此代码作为示例:
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的位置。然后,视图上的任何用户交互(例如按下按钮)都会使位置设置返回到StoryBoard上显示的位置。这在Xcode的早期版本中不会发生。
好像,视图被重置并忘记了我在上面设置的位置设置。似乎UIView根据StoryBoard设置重新编写/更新,并且丢失了我在方法中调用的编程设置。
注意:标签和图像对象在.h文件中定义为强,非原子。这两个对象在视图中都没有任何约束。用于设置位置的方法仅被调用一次。
这是一个我不理解的新功能,需要更新代码,或者这是xcode6中的错误?这个问题出现在模拟器和实际设备中。