watchOS 8.5:无效的框架尺寸(负或非有限)



所以我试图用下面的代码绘制一个条形图:

HStack(alignment: .bottom) {
ForEach(0..<values.count) { idx in
let max = values.max() ?? 0

VStack {
Text(labels[idx])
.font(.caption)
.rotationEffect(.degrees(-60))

RoundedRectangle(cornerRadius: 5)
.fill(Color.white)
.frame(width: 20, height: CGFloat(values[idx]) / CGFloat(max) * geo.size.height * 0.6)

Text(xAxisLabels[idx])
.font(.caption)
}
}
}.frame(maxWidth: .infinity, maxHeight: .infinity)
.cornerRadius(10)
.padding(.bottom, 20)
}

备注行:

.frame(width: 20, height: CGFloat(values[idx]) / CGFloat(max) * geo.size.height * 0.6)

我正在根据HealthKit中的值("values"变量(为条形图动态分配高度。

我只是想知道有没有办法解决这个问题?我有以前的版本,条形图可以使用静态变量显示,从错误中我可以理解,它不喜欢潜在高度不是静态的。

尝试在此处将0替换为1:

let max = values.max() ?? 1

这将防止在刷新视图时被0除。

最新更新