SwiftUI:在我看来,文本以“ ...”被截断

时间:2019-12-28 19:43:21

标签: swift layout swiftui

在我看来,我有很多文字和边框,但有时会被截断并在其末尾带有“ ...”。我已经尝试过使用.layout admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: "https://status-kgi.firebaseio.com" }); .layoutPriority(),但是奇怪的是,取决于我在何处以及多久使用一次.fixedSize(),它不会在同一位置和每个设备上中断。 Screenshot of it in the iPhone 8 iOS 13.3 simulator。 预先感谢您的帮助。

这是我当前的代码

.layoutPriority()

2 个答案:

答案 0 :(得分:0)

这种行为很正常。

布局优先级使您可以控制在空间有限时缩小视图或在空间充足时扩展视图的容易程度。默认情况下,所有视图的布局优先级均为0,这意味着每个视图都有相等的增长或收缩机会。当您将文本的布局优先级设置为1(大于0)时,它将自动占用所有可用空间。

将所有Textfields设置为layoutPriority(1)时,这意味着所有文本字段再次具有相同的优先级,并且视图决定了哪个文本字段将展开。

您可以使用以下示例进行检查。

struct layout: View {

let text: String = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."

    var body: some View {
        VStack(alignment: .leading, spacing: 25) {
            Text(text)
            Text(text)
            Text(text)
        }
    }
}

现在将VStack嵌入到scrollView中。由于scrollView会自动展开,因此当视图不适合显示时,所有Textfields都会显示完整的文本,而无需使用布局优先级。

您会看到,在灵活视图中通常不需要布局优先级。

在您的代码中,您使用geometryReader,但没有设置约束。因此,如果geometryReader限制了视图的大小,请检查您的代码。

答案 1 :(得分:0)

在文本字符串的开头尝试\ n。

例如

Text("\nMy Text").font(.custom("Rockwell-Bold", size: 50))