如何以编程方式设置WKInterfaceSlider的最大值和最小值?

时间:2015-07-07 06:43:38

标签: ios objective-c watchkit

我知道可以通过Attribute Inspector设置值。但是,滑块的范围需要根据来自服务器的数据进行更改。在这种情况下,硬编码值不是一种选择。有没有办法以编程方式设置它?

2 个答案:

答案 0 :(得分:1)

WKInterfaceSlider documentation from Apple表示无法以编程方式更改WKInterfaceSlider的最小值和最大值 - 这些只能在Interface Builder中设置。

然而,从功能上来说这并不重要,因为WKInterfaceSlider是一个可视的颜色条,当用户滚动数字表冠时,颜色会充满颜色。以编程方式,您回读滑块的值,该值根据填充的滑块的比例报告为介于最小值和最大值之间的数字。但是,滑块本身不会向最终用户显示值。

因此,您可以实现与更改滑块的最小值和最大值完全类似的操作,只需将这些值存储在属性中,并计算应用于滑块返回值的偏移和乘数属性。

  1. 在Interface Builder中创建一个滑块,最小值为0,最大值为100.(这些值实际上可以是任何值,但这是最简单的解决方案,因为可以直接读取值百分比。)

  2. 在WatchKit App Extension中创建minimumValue和maximumValue属性。

  3. 计算以(maximumValue - minimumValue)/100计算的乘数值。

  4. 当您从WKInterfaceSlider读取值时,只需将其计算为(WKInterfaceSliderValue * multiplier) + minimumValue

  5. 您可以随时更改minimumValue和maximumValue属性,您将获得新的所需范围内的值。

    请注意,还有一种方法可以使用setNumberOfSteps(_:)方法更改以最小值和最大值之间的编程方式设置的步数。这不会影响上面的计算,但当然会影响滑块在该范围内返回给您的可能值。

答案 1 :(得分:0)

这里有一个解决方案,本文提供了滑块演示应用程序。

http://makeapppie.com/tag/slider/