У меня несколько прямоугольников и над каждым прямоугольником текст.
прямоугольники с текстом
Теперь эти прямоугольники динамические c: они могут быть очень большими или очень маленькими, в зависимости от Geometry Reader.
Моя проблема в том, что я не могу сделать масштаб текста больше или меньше в зависимости от размера прямоугольников.
Это мой пример кода:
Я объявляю массив чисел:
var array: [[Int]] = [
[4,5,6],
[3,4,9,6],
[4,7],
[1,2,3],
[1,5,5],
[1,2,4,5,6]]
, и это тело:
GeometryReader { geo in
HStack(spacing: 0) {
ForEach(0..<6, id: \.self) { i in
ZStack(alignment: .bottom) {
LinearGradient(gradient: Gradient(colors: [Color.gray, Color.white]), startPoint: .bottom, endPoint: .top)
.frame(width: (geo.size.width - 90) / CGFloat(10), height: 90)
.overlay(Rectangle().stroke(Color.white))
.cornerRadius(8)
VStack(spacing: 0) {
ForEach(0..<self.array[i].count) { j in
Text("\(self.array[i][j])").font(.footnote)
}
}
}
}
}
}
Вот что я пробовал:
Я установил очень большой размер и очень маленький масштабный коэффициент:
Text("\(self.array[i][j])").font(.system(size: 1000)).minimumScaleFactor(0.0005)
Я также пробовал использовать фиксированный размер:
.fixedSize(horizontal: false, vertical: false)
, а также эту строку:
.allowsTightening(true)