为什么我不能在viewWillAppear中以编程方式移动UIViews?我什么时候应该设置定位?

时间:2013-01-09 21:08:59

标签: ios uiview positioning center

我有一些不正确的观点。在我的项目中,我将定位链接到滑块以尝试确保它正在发生,并且当我拖动滑块时它会在视觉上来回捕捉。我已经删除所有内容并制作了一个测试项目来尝试解决这个问题,虽然它不会来回捕捉,但是当调用viewWillAppear时它似乎不起作用,只有在通过拖动滑块进行操作时才会出现。屏幕截图和项目附件。

Initial positioning reflecting the position in IB

The positioning I want to set programmatically at the start that shows when dragging the slider

示例代码:http://www.hyperfileshare.com/d/b7e4b088

1 个答案:

答案 0 :(得分:7)

您正在使用autolayout,一种新的iOS 6功能,它不是通过硬编码坐标来控制控件的放置,而是通过一组称为“布局约束”的规则来控制。有关详细信息,请参阅Cocoa Auto Layout Guide。底线,通过自动布局,您无法通过更改框架坐标来移动项目。

要查看“自动布局”设置,请打开故事板并在右侧面板中打开“文件检查器”(例如,按选项 + 命令 + 1 )并查看“使用Autolayout”设置。

如果要使用自动布局,可以通过更改视图约束来移动视图中的项目,而不是通过更改框架。请参阅Autolayout seems not working when changing view dimensions programmatically