SwiftUI - Многострочный текст MacOS - PullRequest
3 голосов
/ 21 марта 2020

Как отображать элементы текстового пользовательского интерфейса с несколькими обернутыми строками в списке SwiftUI.

Следующий код создает следующее Изображение , и я не могу найти способ найти сделать эту работу как задумано.

let test = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Donec enim diam vulputate ut pharetra. Sed turpis tincidunt id aliquet risus feugiat in. Interdum velit laoreet id donec ultrices tincidunt arcu non.  Lorem END"


var body: some View {
    List(){
        Text(test).lineLimit(nil)
        Divider()
        Text(test).fixedSize(horizontal: false, vertical: true)
        Divider()
        Text(test)
    }
}

.lineLimit(nil) не работает


.fixedSize(horizontal: false, vertical: true) также не работает

Ответы [ 2 ]

2 голосов
/ 22 марта 2020

Хорошо, здесь для macOS (также добавлен тег для лучшей наглядности), не по умолчанию, но достижимо и для List, при необходимости производительность List, et c. и без какого-либо жесткого кодирования.

demo

Протестировано с Xcode 11.4 / macOS 10.15.3

var body: some View {
    GeometryReader { gp in
        List {
            Text(self.test)
                .padding(.trailing)
                .frame(width: gp.size.width)
            Divider()
        }
    }
}
0 голосов
/ 21 марта 2020

вам нужно использовать ScrollView, а не список

import SwiftUI

struct ContentView: View {
    let test = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Donec enim diam vulputate ut pharetra. Sed turpis tincidunt id aliquet risus feugiat in. Interdum velit laoreet id donec ultrices tincidunt arcu non.  Lorem END"


    var body: some View {
        ScrollView {
            Text(test).lineLimit(1).padding()
            Text(test).lineLimit(3).padding()
            Text(test).padding()
        }.frame(maxWidth: 400)
    }
}


struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

enter image description here

...