2010-09-07 46 views
0

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

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

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

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

有没有人有任何解释,为什么这可能是,我怎么可能解决这个问题?

如果提供任何线索,主视图是在UIScrollView中。

回答

0

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

相关问题