【发布时间】:2015-05-09 03:27:09
【问题描述】:
我发现了很多关于迭代数组的问题和答案,但没有找到一个解释如何迭代数组内容、识别和处理索引 0 的不同方法。
这样做的原因是我有一个传入的数据流,我想将它们显示为它们随时间变化的值的图。一个简单的方法是创建一个CGMutablePathRef,计算x 和y 坐标,然后CGPathAddLineToPoint 继续画线。当然路径必须从某处开始,因此对于第一个索引,我需要将 y 坐标设置为 0 偏移量,计算 x 坐标并使用 CGPathMoveToPoint 设置路径的开头。
我所做的是处理索引 0,然后复制数组并丢弃索引 0,并处理复制数组中的剩余项(除了 0 之外的所有项)。我也可以只设置一个布尔值 false,如果循环中的 false 将该点作为索引 0 处理,则将布尔值设置为 true。这两种方法都有些混乱。
我真正不喜欢的部分是每次生成路径时都复制值数组。有没有一种简单的方法可以遍历从索引 1 开始的数组?
我缺少一些方便的数组语法吗?
var yOffset = 0.0
temperaturePath = CGPathCreateMutable()
CGPathMoveToPoint(temperaturePath, nil, xOffsetForTemperature(temperatures[0]), yOffset)
var remainingTemperatures = temperatures
remainingTemperatures.removeAtIndex(0)
for value in remainingTemperatures {
yOffset += verticalAdvanceAmount
let temperatureXOffset = xOffsetForTemperature(value)
CGPathAddLineToPoint(temperaturePath, nil, temperatureXOffset, yOffset)
}
【问题讨论】:
标签: swift core-graphics