1

我正在尝试为 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:)

4

3 回答 3

1

这似乎是一个似乎值得报告的错误。

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()
    }
}
于 2020-10-14T19:13:01.843 回答
0
struct ContentView: View {
    var body: some View {
        ScrollView {
            Text(Date(), style: .timer)
                .clipped()
        }
    }
}
于 2020-10-29T08:58:03.363 回答
0

这就是答案!!!只需添加

.clipped()

struct ContentView: View {
    var body: some View {
        ScrollView {
            Text(Date(), style: .timer)
                .clipped()
        }
    }
}
于 2021-06-16T15:31:24.743 回答