UIViews以横向模式显示在错误的位置

时间:2010-09-07 20:11:09

标签: ipad uiview positioning landscape

我正在制作一个图表应用程序,它在更大的视图中显示框作为子视图。用户可以移动框。我通过保持高度,宽度,x和y(左上角)将核心数据保存到sqlite数据库中。当我打开图表时,我正在从数据库中读取这些值,并使用它们在主视图中设置子视图的框架。

在纵向模式下,此功能正常,并且框在显示屏上的正确位置重新定位。但是,当我旋转到横向,或以横向方式启动应用程序并打开图表时,框的位置是错误的。

我已经跟踪了代码,可以看到正确的值从持久性存储返回并用于正确设置帧。但是,一旦子视图的UIView在屏幕上,它就位于不同的位置(清晰可见并通过检查视图框架中的值来确认)。

现在奇怪的是,x坐标不是固定的像素偏移,而是始终比用于创建帧的值大8.5%,y值总是小9.1%。

有没有人对这可能是什么以及如何解决问题有任何解释?

如果它提供任何线索,则主视图位于UIScrollView内。

1 个答案:

答案 0 :(得分:0)

好的,我找到了答案。我需要在UIScrollView上将Autoresize Subviews设置为false。完成后(通过取消选中IB中的相应框),一切似乎都正常。