如何在编程中为WKInterfaceSlider设置最大值和最小值?

3
我知道可以通过属性检查器来设置值。然而,滑块的范围需要根据从服务器获取的数据进行更改。在这种情况下,硬编码的值不是一个选项。有没有办法以编程方式设置它?

你能提供服务器的响应吗?在什么情况下或何时想要更改滑块值? - Chetan Prajapati
这似乎不是公共API的一部分。也许你可以尝试像 [slider setValue:@(10) forKey:@"maximum"]@"maximumValue" 这样的东西,但即使这样做起作用了,你的应用程序可能会因为使用私有API而被苹果拒绝。 - Glorfindel
1个回答

1

Apple的WKInterfaceSlider文档指出,不可能通过编程方式更改WKInterfaceSlider的最小和最大值——这些只能在界面生成器中设置。

然而,从功能上讲,这并不重要,因为WKInterfaceSlider是一种带有颜色的可视化条形控件,当用户滚动数字表冠时,它将被填充颜色。以编程方式,您可以读取滑块的值,该值报告为介于最小值和最大值之间的数字,基于填充滑块的比例。但是,滑块本身不向最终用户显示值。

因此,您可以通过存储这些值并计算偏移和乘数属性来应用于从滑块返回的值,从而实现与更改滑块的最小和最大值完全类似的效果。

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

  2. 在WatchKit应用程序扩展中创建minimumValue和maximumValue属性。

  3. 计算乘数值,计算公式为(maximumValue - minimumValue)/100

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

随时可以更改minimumValue和maximumValue属性,您将获得来自4的新期望范围内的值。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接