【发布时间】:2020-03-16 17:51:22
【问题描述】:
我正在尝试将动态视图集合(即不同数量的视图)与居中视图的右侧对齐,而不会将中心视图从其原始中心位置移动。
例如,中心视图是Text("12"),右侧视图是[Text("+3"), Text("+10"), Text("-1")],所以我希望12 右侧的视图显示在其右侧,而12 水平居中位于屏幕:
| 12 +3 +10 -1 |
如果我尝试使用HStack,12 将远离中心。有我可以使用的视图修饰符吗?前任。 Text("12").alignToRight(...)
此解决方案将集合与屏幕右边缘的左侧对齐,但这不是一回事。
ZStack {
Text("12")
HStack(spacing: 4) {
Spacer()
Text("+3")
Text("+10")
Text("-1")
}
}
我宁愿不必复制左侧的HStack,然后让它消失以平衡右侧的HStack(这是一种创建布局的荒谬方式,加上我的示例我在这里提供很简单,实际上我必须在动态集合上使用ForEach),即
HStack {
Spacer()
HStack(spacing: 4) {
Spacer()
Text("+3")
Text("+10")
Text("-1")
}
.opacity(0)
Text("12")
HStack(spacing: 4) {
Spacer()
Text("+3")
Text("+10")
Text("-1")
}
Spacer()
}
使用Text("12").overlay(myCollectionView.offset(x: 16) 之类的东西也很有趣,因为中心文本的字体大小会有所不同,所以我也必须手动猜测和调整偏移量——我宁愿在两个视图。
【问题讨论】: