刻度:在for循环中 index不是每次+1,而是根据刻度递增
如:每 5 分钟作为一个刻度
使用stride(from:to:by:)实现
let minutes = 60
let minuteInterval = 5
for tickMark in stride(from: 0, to: minutes, by: minuteInterval) {
// 每5分钟渲染一个刻度线(0, 5, 10, 15 ... 45, 50, 55)
}
注意:stride(from:to:by:)是不包含右闭合的区间,如上面代码,不包含60的
如需包含,可以在闭区间使用 stride(from:through:by:)
let hours = 12
let hourInterval = 3
//此时,包含了闭合区间12
for tickMark in stride(from: 3, through: hours, by: hourInterval) {
// 每3小时渲染一个刻度线(3, 6, 9, 12)
}
网友评论