SwiftUI — 如何在 ScrollView 中显示倒计时?
SwiftUI — How can I display a countdown in a ScrollView?
我正在尝试为 Apple Watch 制作一个 SwiftUI 应用程序,它需要在 ScrollView 中使用倒数计时器。但是,当我在 ScrollView 中放置一个日期格式化程序时,应用程序崩溃了(至少在模拟器中——我无法在真实设备上测试,因为我已经达到我的应用程序 ID 限制几天了)。
代码如下所示:
struct ContentView: View {
let date = Date()
var body: some View {
ScrollView {
Text(date, style: .timer)
}
}
}
它给了我这个运行时错误:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
在名为 SwiftUI.DisplayList.ViewUpdater.ViewCache.setNextUpdate(_:item:state:tag:)
的函数中
这似乎是一个值得报告的错误。
DateFormatter()
似乎是一个可行的解决方法。
import SwiftUI
struct TimerStyle: View {
let date = Date()
let timerFormat: DateFormatter
init() {
timerFormat = DateFormatter()
timerFormat.dateFormat = "HH:mm:ss"
}
var body: some View {
ScrollView {
Text(date, formatter: timerFormat)
}
}
}
struct TimerStyle_Previews: PreviewProvider {
static var previews: some View {
TimerStyle()
}
}
struct ContentView: View {
var body: some View {
ScrollView {
Text(Date(), style: .timer)
.clipped()
}
}
}
这就是答案!!!只需添加
.clipped()
struct ContentView: View {
var body: some View {
ScrollView {
Text(Date(), style: .timer)
.clipped()
}
}
}
我正在尝试为 Apple Watch 制作一个 SwiftUI 应用程序,它需要在 ScrollView 中使用倒数计时器。但是,当我在 ScrollView 中放置一个日期格式化程序时,应用程序崩溃了(至少在模拟器中——我无法在真实设备上测试,因为我已经达到我的应用程序 ID 限制几天了)。
代码如下所示:
struct ContentView: View {
let date = Date()
var body: some View {
ScrollView {
Text(date, style: .timer)
}
}
}
它给了我这个运行时错误:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
在名为 SwiftUI.DisplayList.ViewUpdater.ViewCache.setNextUpdate(_:item:state:tag:)
这似乎是一个值得报告的错误。
DateFormatter()
似乎是一个可行的解决方法。
import SwiftUI
struct TimerStyle: View {
let date = Date()
let timerFormat: DateFormatter
init() {
timerFormat = DateFormatter()
timerFormat.dateFormat = "HH:mm:ss"
}
var body: some View {
ScrollView {
Text(date, formatter: timerFormat)
}
}
}
struct TimerStyle_Previews: PreviewProvider {
static var previews: some View {
TimerStyle()
}
}
struct ContentView: View {
var body: some View {
ScrollView {
Text(Date(), style: .timer)
.clipped()
}
}
}
这就是答案!!!只需添加
.clipped()
struct ContentView: View {
var body: some View {
ScrollView {
Text(Date(), style: .timer)
.clipped()
}
}
}