我正在制作swiftUI日历,并遇到了SwiftUI文本视图的奇怪截断问题。
struct test : View {
var body: some View {
GeometryReader { geometry in
HStack(alignment: .center, spacing: 0) {
ForEach(0..<7) { _ in
Text("Tue").frame(width: geometry.size.width / 7).border(Color.red, width: 2)
}
}
}
}
}
在一开始,我认为可能是因为“文本视图”大小不够大。但是当我减小“文本视图宽度”时,截断就消失了。我还尝试设置一个较小的字体,但它也没有起作用。感谢您的提示!
struct test : View {
var body: some View {
GeometryReader { geometry in
HStack(alignment: .center, spacing: 0) {
ForEach(0..<7) { _ in
Text("Tue").frame(width: geometry.size.width / 8).border(Color.red, width: 2)
}
}
}
}
}
答案 0 :(得分:1)
这绝对是只在iPhone XS中显示的错误,而在iPhone XR中没有显示。请注意,XS为375点宽,而XR为414点。但是,这与它无关。 375足以容纳7个标签。
我认为您应该提交错误报告,同时,使用XR进行开发。 如果有人有实际的设备,很高兴知道那里是否还存在该错误 。
我创建了这个小例子,展示了它在Xs上的工作方式异常
这是Xr,它可以正常工作:
这是示例代码:
struct ContentView: View {
@State private var slider: Float = 100.0
var body: some View {
VStack {
GeometryReader { geometry in
HStack(alignment: .center, spacing: 0) {
ForEach(0..<7) { _ in
Text("Tue").frame(width: geometry.size.width / 7, height: 30).border(Color.blue)
}
}
}.frame(width: Length(slider), height: 40)
Text("\(slider)")
Slider(value: self.$slider, from: 100.0, through: 375.0, by: 1.0)
Spacer()
}
}
}