使用Xcode6丢失了对UILabel和UIImage帧的编程更改

时间:2014-09-18 15:00:55

标签: ios8 xcode6

我有一个生产应用程序,使用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中的错误?这个问题出现在模拟器和实际设备中。

1 个答案:

答案 0 :(得分:2)

layoutSubview 

不再被召唤。 那可能是你的问题。 检查this