【发布时间】:2015-09-16 07:27:34
【问题描述】:
我有一个纵向的子视图(故事板场景):
我想在设备旋转到横向时像这样移动和调整大小:
处理此问题的最佳(或最简单)方法应该是什么? 我正在考虑以下选项:
- 创建不同的分隔
xib文件(一个用于纵向,另一个用于横向),并加载相应的文件? - 当方向改变时旋转 + 平移 + 调整子视图的大小?
- 直接创建两个子视图(水平底部和垂直左侧)并根据方向隐藏对应?
我在这种情况下需要帮助,我找不到适合我的解决方案。另外,如果我缺少任何其他选项,我将不胜感激。
提前致谢
编辑:这是一款针对 iOS 7 及更高版本的应用。我没有使用尺寸类功能,只是自动布局。
编辑 2:
- 为子视图设置新框架。
这个选项和选项2应该有什么区别?
【问题讨论】:
-
据我了解,UIPresentationController 类是专门为此设计的。但是,我对它还不够熟悉,无法写出完整的答案。有一些方法可以响应尺寸等级的变化,这就是你在某些设备上所拥有的。苹果目前不鼓励(我认为)根据我认为的除尺寸等级以外的任何东西进行 UI 更改,因此如果您希望在手机上出现这种行为,这可能不是一件容易的事吗?不过我不能肯定地说。
-
@Braains 感谢您的回复,我忘了说我正在为 iOS 7+ 开发,我只是使用自动布局,我没有利用大小类......
-
我认为有一个更简单的解决方案。您可以使用超级视图将视图绑定到左侧和底部。接下来,获取视图的高度和宽度约束的 IBOutlet。设备旋转时更改值。如果您愿意,您也可以使用动画更新约束。如果您喜欢这个想法,如果您想了解更多信息,请告诉我。
标签: ios uiview storyboard orientation nslayoutconstraint