0

菜鸟在这里。关于 SO 的各种类似问题,但仍然无法弄清楚。我在主视图上有一对按钮,在滚动视图中有一对按钮(嵌入在主视图中)。每对按钮位于显示器的相对两端。滚动视图覆盖了显示屏的下半部分。

当我从纵向旋转到横向时,主视图中的一对按钮会根据它们的布局约束正确地重新定位在显示器的两端。但是滚动视图中的按钮没有正确重新定位。滚动视图本身在横向模式下正确展开(如背景颜色所示),但按钮不会移动。两组按钮具有相同的布局约束。如何使滚动视图中的按钮模仿主视图中的按钮?换句话说,如何在横向模式下将滚动视图中的这对按钮移动到相反的两端?

我没有任何自定义代码,一切都是通过界面生成器完成的。我正在使用 iOS 6.1 和 xcode 4.2。

4

2 回答 2

0

自动布局往往有点混乱。屏幕旋转后,您可以自定义元素的位置。这些是 iOS 将在设备旋转时调用的方法。只需给按钮插座并在这些方法中调整它们

如果在旋转之前,从 UIViewController 覆盖:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
 // do something before rotation
}

如果您想在旋转后执行某些操作:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
 // do something after rotation
}
于 2013-06-24T19:05:28.033 回答
0

我在不需要任何手动代码的情况下解决了这个问题。我将单个内容视图添加到滚动视图,然后将我的子视图(即 UIButtons)添加到内容视图。

我通过添加高度约束来固定内容视图的高度,将内容视图的左侧、顶部和右侧锚定到滚动视图(没有锚定底部以防止内容视图在横向模式下缩小)。此外,将滚动视图(左、上、右和下)锚定到其父视图,以确保它在横向模式下正确地缩小高度并扩大宽度。

成功的秘诀在于布局限制。一旦我完全——我的意思是完全——理解了这些限制,一切就变得一清二楚了。

于 2013-06-26T09:02:46.397 回答