SwiftUI:根据字符串长度动态更改字体大小

SwiftUI:根据字符串长度动态更改字体大小,swift,uikit,swiftui,Swift,Uikit,Swiftui,SwiftUI中是否有任何东西允许我测量字符串长度(比如在文本字段中)并减小其字体大小,以防字符串长度超过文本字段的宽度 好的,我明白了,我的问题是模棱两可的。。。有两个问题合并在一起:D 让我把他们分开,谈一谈我真正感兴趣的问题 动态更改TextFields字体应该不是什么大事。我还没有测试它,但我认为在.font()修饰符中保存一个@State变量并将其传递给.systemfont(),就可以了 现在我真正感兴趣的是:如何知道我的文本字段文本是否比它的容器长? 搜索互联网让我浏览了UIKit

SwiftUI中是否有任何东西允许我测量字符串长度(比如在文本字段中)并减小其字体大小,以防字符串长度超过文本字段的宽度

好的,我明白了,我的问题是模棱两可的。。。有两个问题合并在一起:D 让我把他们分开,谈一谈我真正感兴趣的问题

动态更改TextFields字体应该不是什么大事。我还没有测试它,但我认为在
.font()
修饰符中保存一个
@State变量并将其传递给
.systemfont()
,就可以了

现在我真正感兴趣的是:如何知道我的文本字段文本是否比它的容器长?

搜索互联网让我浏览了UIKit的
intrinsicContentSize
。但我没有找到任何有用的SwiftUI等价物,也没有发现是否可以在SwiftUI中使用它

有人在SwiftUI做过类似的事情吗?谁能给我指出正确的方向吗


谢谢

有一个简单的答案,然而,我发现它只是有时有效

Text("Hello World!")
.minimumScaleFactor(0.4)
这应该做你想要的,只有缩小文本,如果它不适合。它只会将文本缩小到适合文本框架所需的大小

但我发现,在某些设备上,swiftUI会将文本缩小到最小的比例。这似乎取决于应用程序。在我的一些应用程序中,它只能在模拟器中工作,而在其他应用程序中,它只能在任何设备上正常工作


希望这有帮助。

哦,哇!这很有效。是否有可能在多个步骤中调整量表?例如,第一个scaleFact设置为0.7,第二个scaleFact设置为0.4?没有。我更新了我的答案,以澄清字体的缩放方式。