持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第26天,点击查看活动详情
大家好,我是小黑,一个还没秃头的程序员~~~
大家好,今天介绍的控件是表单中常用的开关控件UISwitch、分段控件UISegmentControl,效果如下:
话不多说,正文开始:
(一)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的部分函数:
- setImage(_:forSegmentAt:)将片段的内容设置为给定的图像
- imageForSegment(at:)返回特定段的图像
- setTitle(_:forSegmentAt:)设置段的标题
- 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开发笔记,感谢大家的阅读!共同努力!大家晚安!