本文共 971 字,大约阅读时间需要 3 分钟。
本节书摘来自异步社区《iOS 6核心开发手册(第4版)》一书中的第2章,第2.9节处理选项开关和步进器,作者 【美】Erica Sadun,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.9 处理选项开关和步进器
iOS 6核心开发手册(第4版)UISwitch对象提供了一个简单的启用/禁用开关,允许用户选择一个布尔值(对于大多数非英语地区,选项开关国际化为1/0)。选项开关对象包含单个(可设置的)值属性,称为on。它将返回YES或NO,这取决于控件的当前状态。可以以编程方式更新选项开关的值,其方法是直接更改属性值或者调用setOn:animated:,其中后者提供了一种方式以动画展示所做的更改。在这个示例中,当选项开关更新时,它会更改视图控制器的标题。IB提供了相对较少的选项用于处理选项开关。可以启用它并设置其初值,但是除此之外,没有太多的方面可以自定义。当用户调整选项开关时,它会产生一个值改变事件。
注意:
不要把UISwitch实例命名为switch。回忆可知,switch是一个保留的C关键字,它用于条件语句。许多iOS开发人员由于忽视了这一点而犯错误。UIStepper类提供了滑块和选项开关的替代选择。滑块提供了一个连续的值范围,选项开关则提供了简单的开/关选择。步进器落在中间某个位置。实例会展示两个按钮,一个标记-,另一个标记+。它们可以迭代地递增或递减其value属性。你一般希望给控件指定一个范围,其方法是:把它的minimumValue和maximumValue设置为某个合理的界限,使得控件可以更紧密地绑定到实际的应用程序特性上,比如音量、速度及其他可度量的数值。其实不必非得如此,但在少数情况下你可能希望允许用户输入不受限制的变量。可以通过把步进器的wraps属性设置为YES,把它“包装”起来。当值超过最大值或者小于最小值时,value将从最小值包装到最大值或者从最大值包装到最小值,这取决于按下的按钮。
默认情况下,步进器是自动重复的。也就是说,只要用户按住它的某个按钮,它就会继续变化。可以通过把autorepeat属性设置为NO来禁用这一点。每次点按所改变的值的数量是由stepValue属性控制的。永远不要把stepValue设置为0或者一个负数,否则,将会引发一个运行时异常。
转载地址:http://qyhtx.baihongyu.com/