Как я могу использовать минимальный масштабный коэффициент, прежде чем дефолт на несколько строк?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

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