Я пытаюсь отобразить настраиваемое представление для моей строки списка, это HStack с изображением, текстом заголовка и другим текстом, содержащим короткий абзац. У меня проблемы с высотой элемента NavigationLink. Я попытался установить рамку на определенную высоту, но она не отображается оптимально на разных устройствах (небольшой разницы в разрешении между iPhone XR и iPhone XS достаточно, чтобы мне пришлось регулировать высоту вручную).
Есть ли способ автоматической установки высоты рамки? Я пробовал много вещей, таких как установка высоты кадра в моем PlanetRow View, добавление отступов, установка lineLimit на: 0, 3, 5, ... Что бы я ни делал, если я не устанавливаю высоту для представления NavigationLink, 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"))
}
}
}