12.5.1 在视图中添加UISegmentedControl

12.5.1 在视图中添加UISegmentedControl

创建UISegmentedControlPractise项目,在Object Library中找出Segmented Control,如图12.5.1所示:

图12.5.1 Object Library中的Segmented Control

使用鼠标左键点住,将其拖拽至Main.storyboard上,如图12.5.2所示:

图12.5.2 将Segmented Control拖入Storyboard

点击Xcode顶部工具栏中的“Assistant Editor”,使Storyboard和View Controller同时展示,鼠标指针移至Segmented Control上方,右键点住将其拖动至View Controller文件中类声明的下一行,此时会提示一个黑框“Insert Outlet,Action,or Outlet Collection”,如图12.5.3所示:

图12.5.3 为Segmented Control生成对应的属性

放开鼠标右键,Xcode会弹出一个提示框让开发者选择为Storyboard中的Segmented Control关联一个属性(Outlet)还是一个动作(Action)。此例中先添加一个属性,名为“segmented Control”,点击“Connect”按钮,完成添加,如图12.5.4所示:

图12.5.4 为Segmented Control生成的属性命名

View Controller中多了一个属性,在代码中,开发者可以通过这个属性访问到界面上的Segmented Control控件。

接着像添加属性一样为UISegmentedControl关联值变化的事件,如图12.5.5所示:

图12.5.5 为Segmented Control关联值变化的事件

开发者可以通过下面这个方法知道UISegmentedControl按钮的值发生了变化,添加一个打印状态的语句,代码如下:

动手写12.5.1 UISegmentedControlPractise->ViewController.swift

运行模拟器,如图12.5.6所示:

图12.5.6 UISegmentedControlPractise模拟器运行结果

开发者来回切换segmentedControl选中项时,底部的控制台将会不断地打印出segmentedControl选中项的位置,如下:

每次segmentedControl选中项变化时,scValueChanged方法都会被调用,并且得到最新的segmented Control选中项的位置。