您的位置:首页 > 移动开发 > Swift

Swift基础(十八)UISegmentedControl

2016-07-25 10:17 393 查看
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")

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息