多行文本在SwiftUI中列表内的NavigationLink中不起作用

时间:2019-07-10 19:34:08

标签: list text swiftui

Text内的NavigationLink中的多行List似乎不起作用。

代码如下:

struct ContentView : View {
    var body: some View {
        List(1...5) { _ in
            NavigationLink(destination: EmptyView()) {
                Text("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.")
                    .lineLimit(nil)
            }
        }
    }
}

enter image description here

卸下NavigationLink后,Text的运行将达到预期的效果。

是否可以解决此问题,或者这是一个错误?

2 个答案:

答案 0 :(得分:2)

似乎NavigationLink已“损坏”。但是您可以改用 DynamicNavigationDestinationLink 。我知道它太冗长,但是如果您需要出路,就在这里。至少要等到NavigationLink更好地工作为止。

struct ContentView: View {

    var body: some View {
        NavigationView {
            TopView().navigationBarTitle(Text("Top View"))
        }
    }
}

struct TopView: View {

    let detailView = DynamicNavigationDestinationLink(id: \String.self) { data in
        DetailView(passedData: data)
    }

    var body: some View {
        List(1...5) { i in
            Text("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.")
                .lineLimit(nil)
                .tapAction { self.detailView.presentedData?.value = "Detail for Row #\(i)" }
        }
    }
}

struct DetailView: View {
    let passedData: String

    var body: some View {
        Text(passedData)
    }
}

答案 1 :(得分:0)

在当前的XCode 13.1 Beta中,当“文本”视图位于容器视图内部时,我仍然对此有疑问。我可以解决这个问题,使行(容器)的高度最小:

Text("blabla").lineLimit(2).frame(minHeight: 50)