IOS 初级开发入门教程之Switch、Slider、Segmented、Progress练习
程序员文章站
2022-04-23 11:13:14
IOS 初级开发入门教程之Switch、Slider、Segmented、Progress练习。
看完前面5章的内容,基本对IOS开发有一些认识了,这章我们继续动手去实践一下,学...
IOS 初级开发入门教程之Switch、Slider、Segmented、Progress练习。
看完前面5章的内容,基本对IOS开发有一些认识了,这章我们继续动手去实践一下,学习开关、拖动、分段控制、进度条的相关知识,以及通过一个交互式的案例演示如何使用。
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上 }
运行结果
上一篇: 光电鼠标工作原理说明