Swift中如何根据count值按区间规则计算对应offset高度
解决方案
问题根源
原有代码通过统计0到count-1范围内的奇数个数作为offset系数,逻辑完全不匹配按count区间阶梯递增的需求,才会出现count=0返回0、count=12返回600的不符合预期结果。
正确实现
利用整数除法向下取整的特性,少量代码即可实现需求,无需循环:
func getHeight(count: Int) -> CGFloat { let coefficient = count == 0 ? 1 : (count + 2) / 3 return CGFloat(coefficient * 100) }
结果验证
代入你提供的测试用例,运行结果完全匹配预期:
- count=0:系数1 → 返回100,符合预期
- count=2:系数1 → 返回100,符合预期
- count=4:系数2 → 返回200,符合预期
- count=7:系数3 → 返回300,符合预期
- count=12:系数4 → 返回400,符合预期
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

