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

Iam*_*ino 1 uikit swift swiftui

SwiftUI 中是否有任何东西可以让我测量字符串长度(例如在文本字段内)并减小其字体大小,以防字符串长于文本字段的宽度?

好吧,我明白了,我的问题模棱两可...有两个问题合并为一个:D 让我把它们分开,然后谈谈我真正感兴趣的问题。

动态更改 TextFields 字体应该不是什么大问题。我还没有测试它,但我想持有 a@State variable并将其传递到.systemfont()内部.font()应该可以解决问题。

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

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

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

谢谢

Mab*_*nit 8

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

Text("Hello World!")
.minimumScaleFactor(0.4)
Run Code Online (Sandbox Code Playgroud)

这应该可以满足您的要求,只有在不适合的情况下才缩小文本。它只会将文本缩小到适合文本框架所需的量。

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

希望这可以帮助。