swift - SwiftUI 中的相对大小
问题描述
在使用 HTML/CSS 来设置布局样式时,我喜欢使用单位vw
,em
并且%
我很少使用px
单位。我的原因是用户可能会更改字体大小以获得更好的可读性,或者用户正在使用不同的设备或浏览器,它们可能具有不同的屏幕大小或不同的默认字体大小。
.example {
font-size: 2em;
padding: 2em;
}
在 SwiftUI 中,我能找到的CGFloat
只是GeometryProxy
. Apple 似乎知道在使用padding(nil)
修饰符或省略spacing
aHStack
或VStack
. 但我不知道如何获得这些值。
我见过一些复杂的解决方案,但我的应用程序需要大量填充。现在我可以将一个计算出的相对填充从我的父视图传递给孩子和那些 and 和 and 的孩子。然而,这似乎是非常错误的。拥有这样ObservableObject
的价值似乎也是一种不好的做法。
在GeometryReader
每个子视图中都有一个也是不可能的,因为GeometryReader
占用了所有空间,我不希望我的子视图使用这些空间,因为它们应该与它们的内容一样高。
我是否忽略了某些东西,或者最好的方法是什么?
TL;博士
SwiftUI 中是否有任何相对单位可用于尺寸(如em
或vw
在 CSS 中)而不GeometryProxy
向下传递给每个子视图?我不能GeometryReader
在每个子视图中使用,因为它破坏了我的布局。或者,如何获取默认的系统填充大小?
解决方案
推荐阅读
- python - 试图使它成为您可以从列表中选择书籍的地方,然后在最后使用 python 给出分项收据
- r - ggplot 清理堆积条形图上的 y 轴
- http - multipart/form-data 是一次性还是以流的形式发送整个文件数据
- python - 有效地查询 pandas.DataFrame 中的大量布尔列
- javascript - PHP:关联数组到数值数组
- php - 检查 MySQL 语句是读取还是写入
- android - 在事件表 Google 日历 Android 中更新 SELF_ATTENDEES_STATUS 时出错
- html5-canvas - 如何在 html 画布饼图中绘制弯曲的文本
- python - Python 访问循环的正确值
- logging - Mobaxterm 日志行未进入完整屏幕