У меня есть текст описания в VStack, и я хотел бы ограничить его тремя строками. Насколько я понимаю, я модифицирую Text() с помощью модификатора .lineLimit(3). Однако, когда я это делаю, некоторые описания ограничиваются строками 3, а другие - строками 1. Кажется, нет никакой последовательности в отношении того, где это происходит.
Я думал, что это может быть порядок, в котором я вызываю атрибуты модификатора, но переключение порядка .font(.body) и .lineLimit ничего не меняет. Я также пытался удалить .padding(), и это тоже не работает.
List(clubData) { club in
VStack(alignment: .leading) {
Text(club.name)
.font(.title)
.lineLimit(nil)
Text(club.subtitle)
.lineLimit(4)
.font(.body)
}
.padding()
}
Вот изображение того, что происходит:
Ожидайте и доклад. :-П
ах, я это знаю. Представлен радар ?
К вашему сведению, Xcode 11 beta 3 имеет ту же проблему.





Я испытал это.
На данный момент, если вы оберните свои представления в GeometryReader, тогда он должен учитывать ограничения строки
например
GeometryReader { _ in
VStack(alignment: .leading) {
...
}
}
Спасибо! Обертывание моего текстового представления в программе чтения геометрии решило мою проблему с уменьшением текста при вращении устройства при использовании .font(.system(size: 120)), .minimumScaleFactor(0.1) и .lineLimit(1)
Ответ — загрузить Xcode 11.2 BETA. Xcode 11 GM в App Store также имеет проблему с ограничением .linelimit(nil) одной строкой.
Вам также может помочь этот ответ для Xcode 11 GM:
https://stackoverflow.com/a/56604599/30602
Подводя итог, можно сказать, что внутри других Builders вам нужно добавить .fixedSize(horizontal: false, vertical: true) к вашему Text(), чтобы он обернулся.
Вот это да. Большое спасибо Apple за интуитивно понятный способ сделать это возможным. </сарказм>
12 декабря 2019 г. с Xcode 11.2.1
НЕ доверяйте .lineLimit, используйте рамку, чтобы установить соответствующую высоту (в соответствии с вашим размером шрифта), чтобы обернуть многострочный текст. И, НЕ ИСПОЛЬЗУЙТЕ .lineSpacing, даже если вы думаете, что у вас достаточно высоты, у SwiftUI должен быть действительно «особый» способ определить, достаточно ли высоты VStack и сколько строк отображать.
23 апреля 2020 г., Xcode 11.4
В моем случае я получаю текст описания фильма из API TMDB, который имеет динамическую длину. И это встроено в VStack.
Это действительно раздражает. Даже если я установил .linelimit(nil), строку для текста описания, она все равно будет иметь ограничение и в конечном итоге проигнорирует некоторый текст как "длинное описание...".
Это в бета-версии, ожидайте худшего!