Как в SwiftUI текст отображается равномерно после установки минимумаScaleFactorIOS

Программируем под IOS
Ответить
Anonymous
 Как в SwiftUI текст отображается равномерно после установки минимумаScaleFactor

Сообщение Anonymous »

В SwiftUI минимумScaleFactor используется для всех дочерних элементов в HStack. Как мне приблизить размеры шрифтов всех дочерних элементов друг к другу?
Это мой текущий код и результат его запуска:

Код: Выделить всё

import SwiftUI

struct Test: Hashable, Decodable {
var label: String
var value: String
var key: String
}

struct TestView: View {
@State private var fields: [Test] = [
Test(label: "label1", value: "value1value1", key: "KEY1"),
Test(label: "label2", value: "value2value2value2value2value2value2value2value2value2value2value2value2", key: "KEY2"),
Test(label: "label3", value: "value3value3value3", key: "KEY3")
]

var body: some View {
HStack {
ForEach(fields.indices, id: \.self) { index in
let field = fields[index]
if index > 0 {
Spacer(minLength: 10)
}
VStack(alignment: .leading) {
Text(field.label)
.lineLimit(1)
.font(.system(size: 16, weight: .bold))

Text(field.value)
.lineLimit(1)
.minimumScaleFactor(0.4)
}
}
}
}
}
Это результат запуска:
Изображение

В этом случае размер шрифта метки фиксирован, а vlaue — это значение, введенное пользователем в будущем. Согласно результату выполнения кода, мы видим, что размер шрифта значения1 и значения3 будет намного больше размера шрифта значения2 (и это правильно). Я надеюсь добиться уменьшения размера шрифта значения1 и значения3, чтобы сделать их ближе к шрифту значения2. Вместо того, чтобы сохранять одинаковый размер шрифта, это сделает весь дисплей HStack более красивым.
Это то, чего я ожидал:
Изображение

Похоже, что основная причина этой проблемы заключается в том, что HStack назначает ширину для каждого элемента, даже если текста меньше, его можно выделить на большую ширину, поэтому разница в размерах шрифтов текста велика; Но я не знаю, как изменить такое поведение HStack, или есть ли другой ярлык, который может заменить HStack?
Если кто-нибудь может помочь, буду очень признателен! Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/793 ... tor-is-set
Ответить

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

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

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

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

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