- Время
- Значок
- Сводка
- Разделитель
- Значение
При 3) и 4) хотелось бы, чтобы резюме занимало столько места, сколько ему необходимо, за счет следующего разделителя. Если это означает, что разделитель не может появиться вообще или его минимальное количество, то пусть будет так. Однако, несмотря на все мои попытки, резюме занимает лишь определенное количество места, в результате чего его содержимое занимает несколько строк, чтобы разделитель всегда появлялся. Немного помогло присвоение ему LayoutPriority.
Я не хочу задавать ему minWidth, потому что мне хотелось бы, чтобы распределение ширины динамически распределялось в зависимости от содержимого.
Вот код:
Код: Выделить всё
HStack {
// MARK: Time
HStack {
VStack {
Spacer()
Text("9am")
Spacer()
}
}.padding(.horizontal, 4)
.padding(.vertical)
.background(Color.blue.opacity(0.2))
.cornerRadius(8)
VStack {
HStack {
// MARK: Icon
Image(systemName: "cloud.drizzle.fill")
.font(Font.title2)
// MARK: Summary
VStack {
HStack {
Text("Humid and overcast")
.padding(.trailing, 2)
.background(Color.white)
.layoutPriority(100)
Spacer()
}
}
// MARK: Line
VStack {
Spacer()
Divider()
Spacer()
}
// MARK: Values
VStack {
Text(String(22.66))
Text("25%")
.foregroundColor(Color.black)
.background(Color.white)
}
Spacer()
}
}
}

Как вы можете, текст может располагаться на нескольких строках, если достаточно места для его размещения в одной строке, при условии, что следующий разделитель вмещает более длинный текст, будучи короче.
Подробнее здесь: https://stackoverflow.com/questions/653 ... f-an-adjac
Мобильная версия