← 返回 iOS 词条
宽高比
在 iOS 上叫aspectRatio
SwiftUI: View.aspectRatio(_:contentMode:)
官方描述是「把这个视图的尺寸约束到指定的宽高比」。与 CSS 的关键差别是 contentMode 不是可选的:官方把它写成「一个标记,指示这个视图是 fit 还是 fill 父级上下文」—— 光给比例不够,还必须说清是装进去还是填满。比例传 nil 表示沿用当前比例。
元素的宽和高之间保持的比例,窗口变化时按这个比例一起缩放,而不是各缩各的。
- 宽和高要按比例
- 十六比九那种
- 缩放的时候别变形
- 宽高比
- 长宽比
- 纵横比
其他平台的相似实现
Web原生支持
aspect-ratio同名官方定义是「允许你定义元素盒子期望的宽高比」—— 是一个期望值,最终尺寸仍受其他尺寸属性约束。
看 Web 视角 →Android原生支持
aspectRatio同名官方措辞是「尝试」把内容尺寸匹配到指定比例,并逐条列出尝试顺序:maxWidth、maxHeight、minWidth、minHeight。
看 Android 视角 →使用规范
什么时候用
- 图片、视频、封面需要在不同宽度下保持同一形状时
- 占位区域要在内容加载前就撑出正确形状时
什么时候别用
- 内容高度由文字多少决定,强行锁比例会截断或留白时
- 只想限制最大高度 → 直接写高度上限,不要绕道比例