1
我正在watchKit中创建一个自定义滑块。我有一个变量sliderPosition
,其类型为CGFloat
,它在UI上的位置为didSet
。我使用Digital Crown更改滑块的值。给变量类型一个范围CGFloat
func didCrown(value: Double, rps: Double) {
if isValidRange() {
if value > 0 {
ring.sliderPosition = ring.sliderPosition + 0.01
} else if value < 0 {
ring.sliderPosition = ring.sliderPosition - 0.01
}
}
}
func isValidRange() -> Bool {
if ring.sliderPosition >= 0.00 && ring.sliderPosition <= 1.00 {
return true
} else if ring.sliderPosition <= 0.0 {
ring.sliderPosition = 0
return false
} else {
ring.sliderPosition = 1
return false
}
}
我寻找一些本地函数以得到范围为0之间我的变种sliderPosition为1
在上述方法isValidRange
有在逻辑一些错误。因为当值为1.00时,我尝试增加值,它将设置为1.01,当0.00设置为-0.01时,值将相同。
看一看http://stackoverflow.com/questions/36110620/standard-way-to-clamp-a-number-between-two-values-in-swift各种限制(“钳位”)给定范围值的方法。 –
@MartinR Thnx仅供参考。 –