Как я могу использовать минимальный масштабный коэффициент, прежде чем дефолт на несколько строк?IOS

Программируем под IOS
Ответить
Anonymous
 Как я могу использовать минимальный масштабный коэффициент, прежде чем дефолт на несколько строк?

Сообщение Anonymous »

Я пытаюсь отображать строку текста в моем представлении с адаптируемым размером, чтобы она работала со всеми размерами текста и только расширяет его родительское представление, когда это абсолютно необходимо. Когда текст превышает границы родителя, я хочу, чтобы он использовал коэффициент минимального масштаба и только тогда, когда это превышает границы родителя, если текст будет разделен на несколько строк. Несмотря на то, что минимальный коэффициент масштабирования 0,7 подходит в кадре, просмотр, которые вместо этого возвращает многослойный текст.

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

struct AdaptiveText: View {

var text: String
let fontType: Font
let fontWeight: Font.Weight

var body: some View {

ViewThatFits{
//Shrinking Text
Text(text)
.lineLimit(1)
.minimumScaleFactor(0.7)
.fontWeight(fontWeight)
.font(fontType)
.multilineTextAlignment(.trailing)
//MultiLine Text
Text(text)
.lineLimit(nil)
.minimumScaleFactor(0.7)
.fontWeight(fontWeight)
.font(fontType)
.multilineTextAlignment(.trailing)
}
}
}

#Preview {
AdaptiveText(text: "Hi, this is quite a big sentence I guess", fontType: .title, fontWeight: .medium)
.border(.blue)
.background(.red)
.frame(maxWidth: .infinity, minHeight: 85)
.border(Color.red)
.padding()
.border(Color.red)
}
То, что возвращается из представления, который подходит не не сожаленный текст, а многослойный текст


Подробнее здесь: https://stackoverflow.com/questions/788 ... iple-lines
Ответить

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

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

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

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

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