Swift基础(十八)UISegmentedControl
贺山
2023-12-01
class RootViewController: UIViewController {
var segment: UISegmentedControl?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.view.backgroundColor = UIColor.whiteColor()
// 先创建一个数组,用于设置分级控件的标题
let appsArray: [String] = ["租房点评", "哪里逃", " AllOff", "iJump", "数独"]
// 创建分段控件
self.segment = UISegmentedControl(items: appsArray)
// 设置坐标大小
segment?.frame = CGRectMake(20, 100, 320, 40)
// 添加到视图上
self.view.addSubview(self.segment!)
self.createSubViews(self.segment!)
}
private func createSubViews(segment: UISegmentedControl) {
// 分段控件的常用属性和方法
// 默认选中下标为1的标题
segment.selectedSegmentIndex = 1
// 获取选中的坐标
let index = segment.selectedSegmentIndex
// 设置下标等于2的标题
segment.setTitle("Bird Flying", forSegmentAtIndex: 2)
// 设置下标等于3的图片,图片和标题不能共存,设置图片之后,原来的标题就不显示了
segment.setImage(UIImage(named: "segmentImage.png"), forSegmentAtIndex: 3)
// 在坐标为4的位置插入一个分段图片
segment.insertSegmentWithImage(UIImage(named: "semengImage.png"), atIndex: 4, animated: true)
// 获取segment的数量
let count = segment.numberOfSegments
print(count)
// 获取某一个下标下的标题
let title = segment.titleForSegmentAtIndex(1)
// 获取某一个下标下的图片
let image = segment.imageForSegmentAtIndex(2)
/*
momentary默认为NO,单击之后一直处于选中状态,只有单击其他分段才恢复,当设置为YES时,单击选中,但一会就回恢复到正常状态
*/
segment.momentary = true
// 设置某一分段是否可用
segment.setEnabled(false, forSegmentAtIndex: 1)
// 设置下标为2的segment的宽度
segment.setWidth(80, forSegmentAtIndex: 2)
// 设置内容偏移
segment.setContentOffset(CGSizeMake(10, 10), forSegmentAtIndex: 2)
// 获取某一个下标segment的内容偏移
let size = segment.contentOffsetForSegmentAtIndex(2)
// 设置标题颜色
segment.tintColor = UIColor.redColor()
// 获取颜色
let segmentColor = segment.tintColor
// 移除下标是2的segment
segment.removeSegmentAtIndex(2, animated: true)
// 移出所有segment
// segment.removeAllSegments()
// 添加事件,当segment改变时触发
segment.addTarget(self, action: Selector("segmentChange:"), forControlEvents: .ValueChanged)
}
// 实现segmentChage方法
private func segmentChange(sender: AnyObject?) {
let segment: UISegmentedControl = sender as! UISegmentedControl
switch segment.selectedSegmentIndex {
case 0:
print("000")
case 1:
print("111")
case 2:
print("222")
default:
print("default")
}
}
}