Swift —UISwitch/UISegmentedControl的使用

类似于UIStepper/UISlider...UISwitch继承自UIControl,他的用法与UIStepper/UISlider...非常类似,也相对少点。

UISwitch(开关)####

//UISwitch的大小是确定的不能进行修改 51*31
let switchOne = UISwitch(frame:CGRect(x:10.0, y:100.0, width:0.0,height: 0.0))
self.view.addSubview(switchOne)
//switchOne.backgroundColor = UIColor .yellow;

//设置打开状态背景颜色
switchOne.onTintColor = UIColor.brown

//设置关闭状态的背景颜色
switchOne.tintColor = UIColor.orange

//开关快的颜色
switchOne.thumbTintColor = UIColor.red

//设置开关状态
switchOne.setOn(true, animated: true)

//添加按钮事件
switchOne.addTarget(self, action: #selector(ViewController.switchOneValueChanged(sender:)), for: UIControlEvents.valueChanged)

//状态改变之后的执行方法
func switchOneValueChanged(sender:UISwitch) {
    print("我是一个帅哥,你信不?value=%d",sender.isOn)
}

另外,针对

switchOne.onImage = UIImage(named:"1")
switchOne.offImage = UIImage(named:"2")

//开关状态图标设置无效问题,我查阅了苹果官方文档,文档给出的解释。


苹果官方文档

iOS 7之后直接设置了switch 的on image和off image图片,为什么运行没有效果

UISegmentedControl(分段选择控件)####

创建和选择后的事件监听

//分段选项显示
let items = ["见哥1","见哥2",UIImage(named:"1")!] as [Any]

//初始化对象
let segmentedControl = UISegmentedControl(items:items)

//设置位置
segmentedControl.center = self.view.center

//当前选中下标
segmentedControl.selectedSegmentIndex = 1

//添加事件
segmentedControl.addTarget(self, action: #selector(segmentedControlChanged), for: UIControlEvents.valueChanged)

//添加
self.view.addSubview(segmentedControl)

//选择点击后的事件
func segmentedControlChanged(sender:UISegmentedControl) {
    
    print(sender.selectedSegmentIndex)
    
    print(sender.titleForSegment(at: sender.selectedSegmentIndex))
}

添加删除选项
UISegmentedControl每个选项的宽度在默认情况下会根据选项的个数自动分配,而个数在初始化控件之后可以添加和删除

//添加图片选项
segmentedControl.insertSegment(with: UIImage(named:"2"), at: 0, animated: true)

//添加文字选项
segmentedControl.insertSegment(withTitle: "见哥0", at: 1, animated: true)

//移除制定下标的选项
segmentedControl.removeSegment(at: 1, animated: true)

//移出所有segment
segment.removeAllSegments()

此外,我们还可以对一些显示信息进行修改,例:

//颜色设定
segmentedControl.tintColor = UIColor.red
//获取颜色
var segmentColor = segment.tintColor

//显示文字修改
segmented.setTitle("swfit", forSegmentAt:1)
//获取某一个下标下的标题
var title = segment.titleForSegmentAtIndex(1)

//修改选项图片
segmented.setImage(UIImage(named:"icon"), forSegmentAt:2)
//获取某一个下标下得图片
var image = segment.imageForSegmentAtIndex(2)

//修改选项内容偏移位置
segmented.setContentOffset(CGSize(width:10, height:7), forSegmentAt:1)

刚刚说到UISegmentedControl每个选项的宽度在默认情况下会根据选项的个数自动分配,但是有时候根据项目情况的需要,我们也是可以手动来进行设置/获取的。

//设置指定下标选项的宽度
segmentedControl.setWidth(10, forSegmentAt: 1)
//获取某一个下标segment的宽度
var width = segment.widthForSegmentAtIndex(2)

//是否根据segment的内容改变segment的宽度
segment.apportionsSegmentWidthsByContent = true

分段选择控件在点击之后一直处于选中状态,除非点击其他分段,才恢复。 momentary属性用来设置是否一直保持选中状态,当设置为YES时,点击选中,但一会就是恢复到正常状态。

segment.momentary = true;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容