Я пытаюсь отобразить пользовательское представление для моей строки списка, это HStack с изображением, текстом заголовка и другим текстом, содержащим короткий абзац.У меня проблемы с высотой элемента NavigationLink.Я попытался установить рамку на определенную высоту, но она не отображается оптимально на разных устройствах (небольшая разница в разрешении между iPhone XR и iPhone XS достаточно, чтобы мне пришлось регулировать высоту вручную).
Можно ли настроить высоту кадра автоматически?Я пробовал много вещей, таких как установка высоты кадра в моем PlanetRow View, добавление отступов, установка lineLimit на: 0, 3, 5, ... Что бы я ни делал, если я не установил высоту для NavigationLink View,PlanetRow простирается за представление NavigationLink (видимое за пределами разделителей списка).
Вот код для моих просмотров:
struct PlanetRow : View {
var planet: Planet
var body: some View {
HStack {
Image("Mars")
.resizable()
.frame(width: 50, height: 50)
VStack(alignment: .leading) {
Text(planet.name)
.font(.largeTitle)
Text(planet.overview)
.font(.caption)
}
.lineLimit(nil)
}
}
}
struct PlanetList : View {
var body: some View {
NavigationView {
List(planetData.identified(by: \.id)) { planet in
NavigationLink(destination: PlanetDetail(planet: planet)) {
PlanetRow(planet: planet)
}
.frame(height: 150)
}
.navigationBarTitle(Text("Planets"))
}
}
}