SwiftUI文本视图的截断问题

时间:2019-07-03 11:58:22

标签: swiftui truncation

我正在制作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)
            }               
        }
    }
}
}

enter image description here

在一开始,我认为可能是因为“文本视图”大小不够大。但是当我减小“文本视图宽度”时,截断就消失了。我还尝试设置一个较小的字体,但它也没有起作用。感谢您的提示!

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)
            }
        }
    }
}
}

enter image description here

1 个答案:

答案 0 :(得分:1)

这绝对是只在iPhone XS中显示的错误,而在iPhone XR中没有显示。请注意,XS为375点宽,而XR为414点。但是,这与它无关。 375足以容纳7个标签。

我认为您应该提交错误报告,同时,使用XR进行开发。 如果有人有实际的设备,很高兴知道那里是否还存在该错误

我创建了这个小例子,展示了它在Xs上的工作方式异常

enter image description here

这是Xr,它可以正常工作:

enter image description here

这是示例代码:

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()
        }
    }
}