当前位置: 首页 > 工具软件 > Flying-Swift > 使用案例 >

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")
        }
    }
}
 类似资料: