我有一个文本,当其字符串的长度超出视图范围时,我想用.minimumScaleFactor(0.1)
进行修改。但是,即使原始字体大小非常合适,缩放也会每次都适用。
我的观点如此结构:
VStack(alignment: .center, spacing: 0) {
HStack {
Image("medal \(place)").resizable()
.foregroundColor(color)
.frame(width: 40, height: 40)
Spacer()
Text(username)
.font(.bold(16))
.lineLimit(1)
.minimumScaleFactor(0.1)
.frame(alignment: .trailing)
.foregroundColor(Color("mediumTextColor"))
}
Spacer()
Text(score)
.font(.extraBold(60))
.foregroundColor(color)
.lineLimit(1)
.minimumScaleFactor(0.7)
Spacer()
}
.frame(height: 96)
.padding(10)
.cornerRadius(16)
.overlay(RoundedRectangle(cornerRadius: 16)
.stroke(color, lineWidth: 2))
答案 0 :(得分:2)
在我的两个Text视图所在的VStack周围添加GeometryReader可以解决此问题。按照@gohnjanotis的要求:
df.loc[df['T/F']].groupby('Letter')['Number'].mean()
Out[93]:
Letter
A 8.333333
B 6.000000
Name: Number, dtype: float64
答案 1 :(得分:2)
上面回答的继续。
重要的是修饰符的应用顺序:
Text("This is a really long sentence.")
.minimumScaleFactor(0.5)
.font(.custom("OpenSans", size: 15))
.lineLimit(1)
.layoutPriority(1)
除非需要其他用途,否则不需要GeometryReader
答案 2 :(得分:1)
在文本中添加.lineLimit(1)
会很好。
Xcode:11.3.1
答案 3 :(得分:1)
最重要的一点是.minimumScaleFactor
和.lineLimit(1)
的组合仅在需要时才起作用。否则它将无法正常工作。 layoutPriority(1)
不是这里的关键。
示例-这有效;缩放仅在需要时应用:
Text("Something").minimumScaleFactor(0.5).lineLimit(1)
答案 4 :(得分:0)
在您的文本中添加.layoutPriority(1)
修饰符,以确保如果有空格,则使用空格。