我知道可以通过Attribute Inspector设置值。但是,滑块的范围需要根据来自服务器的数据进行更改。在这种情况下,硬编码值不是一种选择。有没有办法以编程方式设置它?
答案 0 :(得分:1)
WKInterfaceSlider documentation from Apple表示无法以编程方式更改WKInterfaceSlider
的最小值和最大值 - 这些只能在Interface Builder中设置。
然而,从功能上来说这并不重要,因为WKInterfaceSlider
是一个可视的颜色条,当用户滚动数字表冠时,颜色会充满颜色。以编程方式,您回读滑块的值,该值根据填充的滑块的比例报告为介于最小值和最大值之间的数字。但是,滑块本身不会向最终用户显示值。
因此,您可以实现与更改滑块的最小值和最大值完全类似的操作,只需将这些值存储在属性中,并计算应用于滑块返回值的偏移和乘数属性。
在Interface Builder中创建一个滑块,最小值为0,最大值为100.(这些值实际上可以是任何值,但这是最简单的解决方案,因为可以直接读取值百分比。)
在WatchKit App Extension中创建minimumValue和maximumValue属性。
计算以(maximumValue - minimumValue)/100
计算的乘数值。
当您从WKInterfaceSlider
读取值时,只需将其计算为(WKInterfaceSliderValue * multiplier) + minimumValue
。
您可以随时更改minimumValue和maximumValue属性,您将获得新的所需范围内的值。
请注意,还有一种方法可以使用setNumberOfSteps(_:)
方法更改以最小值和最大值之间的编程方式设置的步数。这不会影响上面的计算,但当然会影响滑块在该范围内返回给您的可能值。
答案 1 :(得分:0)
这里有一个解决方案,本文提供了滑块演示应用程序。