IOS 初级开发入门教程 (六) Switch、Slider、Segmented、Progress练习

看完前面5章的内容,基本对IOS开发有一些认识了,这章我们继续动手去实践一下,学习开关、拖动、分段控制、进度条的相关知识,以及通过一个交互式的案例演示如何使用。


系列文章:



IOS 初级开发入门教程(三)探究应用及视图的生命周期变化


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上
    }

运行结果



            

猜你喜欢

转载自blog.csdn.net/csdn_aiyang/article/details/79795530