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僅供參考。 –