SwiftUI - IOS 15 - 文本 .mimimumScaleFactor - 始终被应用
SwiftUI - IOS 15 - Text .mimimumScaleFactor - always being applied
找不到关于此问题的任何文档。
我的一个应用程序有一个带有 .minimumScaleFactor(0.5) 的文本视图。这在 iOS 14.0.* 中完美运行 - 当文本比视图宽时,它的比例很好地适合 - IE 填充屏幕的整个宽度。
不幸的是,在 iOS 15 中,无论内容大小如何,似乎都会应用 .minimumScaleFactor。不需要缩放以适合的字符串正在按比例缩小。
这是未记录的更改吗?有没有我不知道的新方法来处理这个问题?
代码如下:
var body: some View {
VStack() {
HStack() {
Text(supplier.name ?? "Unknown Supplier")
.font(.title)
.lineLimit(1)
.allowsTightening(true)
.minimumScaleFactor(0.5)
Button(action: {}) {
Image(systemName: "star.fill")
.imageScale(.large)
}
}
}
}
如有任何帮助,我们将不胜感激。
编辑 - 这似乎只是某些 iPhone 上的问题 - iPhone SE(第 2 代)iOS 15.
的初始测试
使用 .fixedSize
将视图设置为固定对我有用。
你的情况:
Text(supplier.name ?? "Unknown Supplier")
.font(.title)
.fixedSize(horizontal: false, vertical: true)
.lineLimit(1)
.allowsTightening(true)
.minimumScaleFactor(0.5)
文档:
https://developer.apple.com/documentation/swiftui/menu/fixedsize(horizontal:vertical:)
在我的例子中,该行为植根于包装器视图。一旦我强迫它占据所有剩余的水平 space,内部 (auto-shrinking) 文本开始按预期工作。
HStack {
VStack {
Text("Big")
.lineLimit(1)
.minimumScaleFactor(0.01)
Text("Small")
}
}
.frame(maxWidth: .infinity) //
不过,同样的代码在不同 iOS 运行时的工作方式不同,这还是有点令人不安。
找不到关于此问题的任何文档。
我的一个应用程序有一个带有 .minimumScaleFactor(0.5) 的文本视图。这在 iOS 14.0.* 中完美运行 - 当文本比视图宽时,它的比例很好地适合 - IE 填充屏幕的整个宽度。
不幸的是,在 iOS 15 中,无论内容大小如何,似乎都会应用 .minimumScaleFactor。不需要缩放以适合的字符串正在按比例缩小。
这是未记录的更改吗?有没有我不知道的新方法来处理这个问题?
代码如下:
var body: some View {
VStack() {
HStack() {
Text(supplier.name ?? "Unknown Supplier")
.font(.title)
.lineLimit(1)
.allowsTightening(true)
.minimumScaleFactor(0.5)
Button(action: {}) {
Image(systemName: "star.fill")
.imageScale(.large)
}
}
}
}
如有任何帮助,我们将不胜感激。
编辑 - 这似乎只是某些 iPhone 上的问题 - iPhone SE(第 2 代)iOS 15.
的初始测试使用 .fixedSize
将视图设置为固定对我有用。
你的情况:
Text(supplier.name ?? "Unknown Supplier")
.font(.title)
.fixedSize(horizontal: false, vertical: true)
.lineLimit(1)
.allowsTightening(true)
.minimumScaleFactor(0.5)
文档: https://developer.apple.com/documentation/swiftui/menu/fixedsize(horizontal:vertical:)
在我的例子中,该行为植根于包装器视图。一旦我强迫它占据所有剩余的水平 space,内部 (auto-shrinking) 文本开始按预期工作。
HStack {
VStack {
Text("Big")
.lineLimit(1)
.minimumScaleFactor(0.01)
Text("Small")
}
}
.frame(maxWidth: .infinity) //
不过,同样的代码在不同 iOS 运行时的工作方式不同,这还是有点令人不安。