前言
看完前面5章的内容,基本对IOS开发有一些认识了,这章我们继续动手去实践一下,学习开关、拖动、分段控制、进度条的相关知识,以及通过一个交互式的案例演示如何使用。
系列文章:
IOS 初级开发入门教程(五)TextField与ReturnKey实战练习
UIKit继承结构

我们通过这个UIKit继承结构图,我们试着找到本章要学习的UI,去观察所属的继承关系。
界面视图

先把我们要学习的控件拖拽到视图界面。如果新手可以参考我前面的文章。从这章开始我就不细说画图拖拽方面了。
代码界面
首先,我们先实现第一功能,Switch和Segmented之间的联动。先把两个控件在代码上声明输出口 Outlet :
我们将Action动作也实现:(这里以Switch为例)
关键就在于代码如何实现了:(直接把代码逻辑贴出来了)
@IBAction func SwithValueChange(_ sender: Any) {
let senderSwich = sender as! UISwitch ; // 获取当前点击的控件并强转为Switch
if senderSwich == self.mSwitch{
let value = self.mSwitch.isOn ;//获取点击后的状态值
if value{
self.mSegmented.selectedSegmentIndex=1
}else{
self.mSegmented.selectedSegmentIndex=0
}
}
}
@IBAction func ControValueChange(_ sender: Any) {
let senderSegmented = sender as! UISegmentedControl
if self.mSegmented == senderSegmented {
let value = self.mSegmented.selectedSegmentIndex
if value == 1{
self.mSwitch.setOn(true, animated: true)
}else{
self.mSwitch.setOn(false, animated: true)
}
}
}
然后,我们实现第二个功能,Slider与Progress、Label交互。同样先声明输出口outlet:
我们将Slider的Action动作实现:
直接把代码逻辑贴出来了:
@IBAction func sliderValueChange(_ sender: Any) {
let slider = sender as! UISlider // 当前拖动的滑块
let value = Int(slider.value*100) // 获取当前值(0.x)乘以100后的Int值
let showText = NSString(format: "%d", value) // 将数据格式化
self.mLable.text = showText as String // 显示在Label上
self.mProgress.progress = slider.value //显示在Progress上
}
运行结果
