我知道可以通过属性检查器设置值。但是, slider 的范围需要根据来自服务器的数据而改变。在这种情况下,硬编码值不是一种选择。有没有办法以编程方式设置它?
WKInterfaceSlider documentation from Apple表示无法以编程方式更改 WKInterfaceSlider
的最小值和最大值——这些只能在 Interface Builder 中设置。
但是,从功能上讲,这并不重要,因为 WKInterfaceSlider
是一个可视的颜色条,当用户滚动数字表冠时会填充颜色。以编程方式,您根据已填充的 slider 的比例读回 slider 的值,该值报告为介于最小值和最大值之间的数字。但是, slider 本身不会向最终用户显示值。
因此,您可以实现与更改 slider 的最小值和最大值完全相同的操作,只需将这些值存储在属性中并计算应用于从 slider 返回的值的偏移和乘数属性。
在 Interface Builder 中创建一个 slider ,最小值为 0,最大值为 100。(这些值实际上可以是任何值,但这是最简单的解决方案,因为这些值可以直接读取百分比。)
在您的 WatchKit 应用扩展中创建 minimumValue 和 maximumValue 属性。
计算一个乘数值,计算方式为 (maximumValue - minimumValue)/100
。
当您从 WKInterfaceSlider
读取一个值时,只需将其计算为 (WKInterfaceSliderValue * multiplier) + minimumValue
。
您可以随时更改 minimumValue 和 maximumValue 属性,您将从 4 获得新的所需范围内的值。
请注意,还有一种方法可以更改在最小值和最大值之间以编程方式设置的步数,使用方法 setNumberOfSteps(_
.这不会影响上面的计算,但当然会影响 slider 在该范围内返回给您的可能值。
关于ios - 如何以编程方式设置 WKInterfaceSlider 的最大值和最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31261518/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |