123456789101112131415161718192021222324252627282930313233343536373839 |
- //
- // JXSegmentedIndicatorRainbowLineView.swift
- // JXSegmentedView
- //
- // Created by jiaxin on 2018/12/28.
- // Copyright © 2018 jiaxin. All rights reserved.
- //
- import UIKit
- /// 会无视indicatorColor属性,以indicatorColors为准
- open class JXSegmentedIndicatorRainbowLineView: JXSegmentedIndicatorLineView {
- /// 数量需要与item的数量相等。默认空数组,必须要赋值该属性。segmentedView在reloadData的时候,也要一并更新该属性,不然会出现数组越界。
- open var indicatorColors = [UIColor]()
- open override func refreshIndicatorState(model: JXSegmentedIndicatorSelectedParams) {
- super.refreshIndicatorState(model: model)
- backgroundColor = indicatorColors[model.currentSelectedIndex]
- }
- open override func contentScrollViewDidScroll(model: JXSegmentedIndicatorTransitionParams) {
- super.contentScrollViewDidScroll(model: model)
- guard canHandleTransition(model: model) else {
- return
- }
- backgroundColor = JXSegmentedViewTool.interpolateColor(from: indicatorColors[model.leftIndex], to: indicatorColors[model.rightIndex], percent: model.percent)
- }
- open override func selectItem(model: JXSegmentedIndicatorSelectedParams) {
- super.selectItem(model: model)
- backgroundColor = indicatorColors[model.currentSelectedIndex]
- }
- }
|