You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅通过Storyboard实现Portrait/Landscape切换时视图位置调整

如何通过Storyboard实现横竖屏的自适应布局需求

嘿,这个需求完全可以靠Storyboard里的Size Classes来搞定,不用写一堆添加/移除约束的代码,咱们一步步来操作:

第一步:配置竖屏(wCompact hRegular)下的约束

首先确保你在Storyboard底部的Size Class选择器切换到wCompact hRegular(这是iPhone竖屏的默认尺寸类):

  • 给视图A添加约束:
    • 顶部与安全区域对齐(Top to Safe Area)
    • 左右两侧与安全区域对齐(Leading/Trailing to Safe Area)
    • 高度设置为你需要的值(比如200)
  • 给视图B添加约束:
    • 顶部与视图A的底部对齐(Top to Bottom of A)
    • 左右两侧与安全区域对齐
    • 高度设置为你需要的值

第二步:配置横屏(wRegular hCompact)下的约束

接下来切换到横屏对应的尺寸类:点击底部的Size Class选择器,选择wRegular hCompact:

  1. 先禁用竖屏时B的顶部约束:
    • 选中视图B那个「Top to Bottom of A」的约束
    • 在右侧Attributes Inspector里找到Installed选项,点击旁边的小加号
    • 取消wRegular hCompact的勾选,这样这个约束只会在竖屏生效
  2. 添加横屏专属的约束:
    • 给视图B添加「Leading to Trailing of A」约束(让B紧贴A的右侧,可按需设置间距)
    • 添加「Top to Top of A」约束(让B和A顶部对齐)
    • 添加「Width Equal to A's Width」约束(如果要平分宽度,可修改Multiplier为0.5)
    • 添加「Height Equal to A's Height」约束(让B和A高度一致)

小提示

  • 如果需要更灵活的宽度分配,比如A占1/3、B占2/3,可以调整Equal Widths约束的Multiplier值
  • 所有针对特定尺寸类的约束,都会在对应屏幕方向下自动生效,不用写任何代码

内容的提问来源于stack exchange,提问作者Shankar Naik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:33:22