如何在Swift 3.0中使用HMSegmentedControl设置选定的段背景颜色

时间:2017-02-08 14:35:18

标签: swift3 uisegmentedcontrol

当选择索引时,如何使用HMSegmentedControl实现此样式。请帮助我如何在swift 3.0中实现这一点......如果可能的话

HMSegmentedControl

这是我的代码:

 func setupSegementCategory(){
        segmentCategory.sectionTitles =  ["home","about","contract","home","about","contract"]
        segmentCategory.backgroundColor = #colorLiteral(red: 0.7683569193, green: 0.9300123453, blue: 0.9995251894, alpha: 1)
        segmentCategory.translatesAutoresizingMaskIntoConstraints = false
        segmentCategory.selectionIndicatorLocation=HMSegmentedControlSelectionIndicatorLocation.down
        segmentCategory.isVerticalDividerEnabled=false
        segmentCategory.selectedSegmentIndex=0
        segmentCategory.selectionIndicatorColor = UIColor.white
        segmentCategory.segmentWidthStyle = HMSegmentedControlSegmentWidthStyle.dynamic
        segmentCategory.titleTextAttributes = [
            NSForegroundColorAttributeName : #colorLiteral(red: 0.2549019754, green: 0.2745098174, blue: 0.3019607961, alpha: 1),
            NSFontAttributeName : UIFont.systemFont(ofSize: 17)
        ]
        segmentCategory.backgroundColor=Constant.GlobalConstants.kColor_blue
        segmentCategory.selectedTitleTextAttributes = [
            NSFontAttributeName : UIFont.systemFont(ofSize: 17),
            NSForegroundColorAttributeName :UIColor(red:0.74, green:0.70, blue:1.00, alpha:1.0)
        ]

        segmentCategory.addTarget(self, action:#selector(segmentedControlValueChanged(sender:)), for: .valueChanged)


    }
    func segmentedControlValueChanged(sender: UISegmentedControl) {
        let sortedViews = sender.subviews.sorted( by: { $0.frame.origin.x < $1.frame.origin.x } )

        for (index, view) in sortedViews.enumerated() {
            if index == sender.selectedSegmentIndex {
                view.tintColor = UIColor.red
            } else {
                view.tintColor = UIColor.lightGray
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

目前无法在HMSegmentedControl中获得该样式。