IOS学习日记之UIView与视图(五)UISwitch、UISegmentedControl

401 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第26天,点击查看活动详情

大家好,我是小黑,一个还没秃头的程序员~~~

大家好,今天介绍的控件是表单中常用的开关控件UISwitch、分段控件UISegmentControl,效果如下:

image.png

话不多说,正文开始:

(一)UISwitch

UISwitch是可以提供仅两种选择的控件,如开/关

UISwitch类声明了一个属性和一个方法来控制它的开/关状态。与UISlider一样,当用户操作开关控件时,它会触发valueChanged事件。 您可以通过改变开关在开或关时用于着色的颜色来定制开关的外观。

UISwitch的基本属性如下:

属性说明
isOn决定开关的开/关状态
preferredStyle交换机的首选显示样式
onTintColor开关的背景色
thumbTintColor用来给拇指的外观着色的颜色
onImage在iOS 6和更早的版本中,当开关处于开启位置时显示的图像
offImage在iOS 6和更早的版本中,当开关处于关闭位置时显示的图像。

下面是一个简单的UISwitch例子:

let mySwitch=UISwitch()
        var frame=mySwitch.frame
        frame.origin=CGPoint(x: 30, y: switchTop)
        mySwitch.frame=frame
        mySwitch.setOn(true, animated: true)
        mySwitch.preferredStyle = .checkbox
        mySwitch.onTintColor = .red
        mySwitch.addTarget(self, action: #selector(switchValueChanged(sender:)), for: .valueChanged)
        self.view.addSubview(mySwitch)

用于监听开关的函数如下:

mySwitch.addTarget(self, action: #selector(switchValueChanged(sender:)), for: .valueChanged)
...
 @objc func switchValueChanged(sender:UISwitch){
        NSLog("switch状态:\(sender.isOn)")
        
    }

(二)分段控件UISegmentedControl

UISegmentedControl是由多个部分组成的水平控件,每个部分作为一个独立的按钮。

分段控件可以显示一个标题(一个NSString对象)或一个图像(UIImage对象)。UISegmentedControl对象会自动调整段的大小以适应它们的父视图,除非它们有一个特定的宽度设置。当你添加或删除片段时,你可以要求动作具有滑动和渐隐效果。

UISegmentedControl的基本属性如下:

属性说明
items数组,代表分段的内容
selectedSegmentIndex选择的索引

UISegmentedControl的部分函数:

  1. setImage(_:forSegmentAt:)将片段的内容设置为给定的图像
  2. imageForSegment(at:)返回特定段的图像
  3. setTitle(_:forSegmentAt:)设置段的标题
  4. titleForSegment(at:)获取特定段的标题

下面是一个简单的UISegmentedControl的例子:

let segments=["1","2","3"]
        let segmentControll=UISegmentedControl(items: segments)
        segmentControll.frame.origin=CGPoint(x: mySwitch.frame.width+40, y: switchTop)
        segmentControll.addTarget(self, action: #selector(segmentControlEvent(sender:)), for: .valueChanged)
        segmentControll.selectedSegmentIndex=0
        self.view.addSubview(segmentControll)

用于监听选择分段的函数如下:

segmentControll.addTarget(self, action: #selector(segmentControlEvent(sender:)), for: .valueChanged)
...
    @objc func segmentControlEvent(sender:UISegmentedControl){
        NSLog("现在点击的是第\(sender.selectedSegmentIndex+1)\(String(describing: sender.titleForSegment(at: sender.selectedSegmentIndex)))")
    }
    

以上便是IOS中关于开关控件UISwitch、分段控件UISegmentControl的使用,今天的UIView学习分享就到这里,后面我会持续输出iOS开发笔记,感谢大家的阅读!共同努力!大家晚安!