具有计时器样式的 SwiftUI 文本被截断
Posted
技术标签:
【中文标题】具有计时器样式的 SwiftUI 文本被截断【英文标题】:SwiftUI Text with timer style gets truncated 【发布时间】:2020-08-21 13:38:59 【问题描述】:当使用 Text
和样式 .timer
时,倒计时期间的某些时间会截断时间。设置frame
、fixedSize
、layoutPriority
、padding
没有帮助。以下代码:
struct ContentView: View
var body: some View
Text(Date(), style: .timer)
将显示:O:00
、O:01
、O:02
、O:03
、O:...
(被截断)、O:05
等。
有什么解决办法吗?
有类似这样的问题,但他们没有帮助:
Text inside a VStack truncates when it's not supposed to in SwiftUI
SwiftUI Text Behavior
【问题讨论】:
我在自己的项目中遇到过这个问题,没有找到合适的解决方案。即使您这样做Text(date, style: .timer).frame(minWidth: 200).background(Color.green)
,您也可以看到视图很宽,但随着计时器的计数,文本仍然会被截断。假设这是 Apple 测试版代码中的错误似乎是合理的。我在反馈助手中提交了一个错误,我鼓励你也这样做。
【参考方案1】:
适用于等宽样式。使用 Xcode 12b3 / ios 14 测试。
Text(Date(), style: .timer)
.font(Font.system(size: 16).monospacedDigit())
【讨论】:
这将在十分钟后失败。 不幸的是,@JamieA 仍然是对的,即使在今天发布的操作系统也是如此 :-(【参考方案2】:这是 Apple 代码中的一个错误,现已修复。使用 Xcode 12 beta 6 构建/在 iOS 14 beta 6 上运行时,计时器不会截断。
【讨论】:
发行版中仍未修复。必须自己做出字体大小决定。呸呸呸以上是关于具有计时器样式的 SwiftUI 文本被截断的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI - 嵌入 ScrollView 后文本被截断
有没有办法在 SwiftUI 中创建 WKExtendedRuntimeSession 的新会话?