【问题标题】:How to support both Portrait and Landscape mode - reusable view with XIBs如何同时支持纵向和横向模式 - XIB 的可重用视图
【发布时间】:2024-05-22 19:25:01
【问题描述】:

我不熟悉使用 XIB 进行方向更改。

我看到很多问题,如thisthis,但我似乎无法在这里找到简单的解决方案。我不想使用任何可以做到这一点的第 3 方框架,而是希望逐步了解我应该如何重新设计我的 XIB 和/或我应该如何创建出口。以及 XIB 视图代码(UIView 派生类)中应该包含的所有内容。

View XIB 目前还没有任何网点,我不确定我应该提供哪些网点。这是XIB的结构:

像上面一样,我会再有 2-3 个 XIB 用于加载视图,所有这些都到同一个视图控制器中。

再次,我知道 UIViewController 如何响应方向变化(preferredInterfaceOrientationForPresentationshouldAutorotateToInterfaceOrientation),但不知道如何在每个此类事件中使用适当的插座加载相应的 XIB。 ,

【问题讨论】:

    标签: ios iphone uiview xib uiinterfaceorientation


    【解决方案1】:

    这可能是一项非常棘手的任务。您在视图中添加插座并在视图控制器中以编程方式重新排列它们是正确的。这是一项相当艰巨的任务,需要花费大量时间。

    我建议使用 XCode 中提供的自动布局工具来简化这项工作,并帮助使过渡看起来更平滑。请检查以下链接:

    如果您在用户更改方向时更改视图的内容,而不仅仅是排列,则每次用户更改方向时重新加载整个 XIB 可能是一个不错的选择。查看有关支持多种界面方向的 Apple 文档。

    我希望这会有所帮助:)

    【讨论】:

    • +1,谢谢。问题是 - 它适用于 iOS 5-7。所以我认为简单地使用自动布局不会有帮助。
    • 谢谢尼拉夫。在另一个 SO 中有一些有趣的解决方案:*.com/questions/12411980/…