【发布时间】:2019-11-28 00:15:42
【问题描述】:
我正在使用 SwiftUI 开发人员列表页面,iPhone X 屏幕足够大,但在 iPhone 8 中标题超出了屏幕:
iPhone X:
但在 iPhone 8 或更小的屏幕中,“查找人员”离左侧太近,“全部关注”甚至超出屏幕范围:
我知道在 UIKit 中自动布局会很容易地解决这个问题,但我想知道 SwiftUI 解决这个问题的最佳方法或正确方法是什么,一些答案说使用 Spacer 或 HStack,但它们都没有真正起作用。
var body: some View {
NavigationView {
List {
ForEach(people) {person in
PersonView(person: person)
}
}.navigationBarItems(leading:
VStack(spacing: 10) {
HStack(spacing: 100) {
Text("Find People").font(.system(size: 30)).bold()
Text("Follow All").foregroundColor(Color(ColorUtils.hexStringToUIColor(hex: Constants.THEME.THEME_COLOR)))
}
HStack(spacing: 20) {
Text("Import from: ")
ForEach(socialIcons, id: \.self) {icon in
Image(icon).resizable().frame(width: 25, height: 25)
}
}
}
)
}
}
【问题讨论】:
-
我认为问题在于您有效地指定了一个需要尾随的项目(“全部关注”)文本作为
leading视图的一部分,因为您想要社交项目下一行。如果我删除了各种堆栈和社交图标,并且只有两个文本项,前导和尾随,就可以了 -
您可能需要重新设计布局。 “找人”应该是
.navigationBarTitle,将社交导入和关注全部作为NavigationView内容的一部分。