Приоритизация элемента управления «Текст» как можно более широким за счет соседнего элемента управления «Разделитель» в IOS

Программируем под IOS
Ответить
Anonymous
 Приоритизация элемента управления «Текст» как можно более широким за счет соседнего элемента управления «Разделитель» в

Сообщение Anonymous »

У меня есть представление, состоящее из нескольких элементов пользовательского интерфейса в HStack:
  • Время
  • Значок
  • Сводка
  • Разделитель
  • Значение
Я хочу, чтобы 1), 2) и 5) занимали не больше места, чем необходимо, т.е. вмешиваться не нужно.
При 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»