如果我在任何地方(Xcode模拟器、playground 等)使用下面的Swift Charts Chart,它就会挂起或崩溃.一旦我移除chartXVisibleDomain修改器,一切都会正常工作.是否有其他人遇到同样的问题和/或知道如何解决?我使用的是Xcode版本15.0(15A240d).

import SwiftUI
import Charts

struct ContentView: View {
    
    let data: [(day: Date, value: Int)] = [
        (Calendar.current.date(byAdding: .day, value: 0,   to: .now)!, 1),
        (Calendar.current.date(byAdding: .day, value: -1,  to: .now)!, 2),
        (Calendar.current.date(byAdding: .day, value: -3,  to: .now)!, 3),
        (Calendar.current.date(byAdding: .day, value: -10, to: .now)!, 4),
        (Calendar.current.date(byAdding: .day, value: -20, to: .now)!, 5)
    ]
    
    var body: some View {
        Chart(data, id: \.day) { (day, value) in
            BarMark(
                x: .value("Date", day, unit: .day),
                y: .value("Value", value)
            )
        }
        .chartXVisibleDomain(length: 2)
    }
}

推荐答案

经过反复试验,我发现在这种情况下传递到chartXVisibleDomain的数字应该是seconds.这是有道理的,因为Date有点像timeIntervalSince1970的包装器,它以秒为单位.

应用程序挂起可能是因为你正在绘制一张really really宽的图表--你说你一次只想看到整个20天数据中的2秒.

您可以执行以下操作:

.chartXVisibleDomain(length: 86400*2) // 86400 seconds in 24 hours

取而代之的是.

Swift相关问答推荐

JSON如何解码空对象

TabView中的视频播放器意外播放

查找数组中 ** 元素 ** 的属性的最小值和最大值

无法创建MKAssociateRegion对象

从任务中打印

相互取消任务

如何绑定环境变量ios17

如何判断设备是否为 Vision Pro - Xcode 15 Beta 4

UIButton 配置不更新按钮标题

如何有条件地依赖桌面与 iOS 的系统库?

使用 Swiftui 水平修剪 Shape()

如何在 SwiftUI 中正确实现Collection 夹?

如何在 SwiftUI 中通过按钮点击一次为一个更改设置动画?

Swift:连接两个数组而不重复共享后缀/前缀

无法分配给属性:self 是不可变的,我知道如何修复但需要理解

如何在 Swift 中复制字典?

自定义 Google 登录按钮 - iOS

如何将多个枚举值作为函数参数传递

如何将应用程序与 iOS 联系人应用程序集成?

iOS:如何检测用户是否订阅了自动更新订阅