swift Swift中的通用分段控件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift Swift中的通用分段控件相关的知识,希望对你有一定的参考价值。

import UIKit

class SegmentedControl: UIControl {
    private let action = Selector("selectSegment:")

    @IBOutlet
    private var segments: [UIButton] = [] {
        didSet {
            segments.sortInPlace { $0.tag < $1.tag }
            subscribe(segments)
        }
    }

    var selectedSegmentIndex: Int = 0 {
        didSet { selectSegmentAtIndex(selectedSegmentIndex) }
    }

    override var enabled: Bool {
        didSet { segments.forEach { $0.enabled = enabled } }
    }

    private func subscribe(segments: [UIButton]) {
        segments.forEach {
            $0.addTarget(self, action: action, forControlEvents: .TouchDown)
        }
    }

    private dynamic func selectSegment(sender: UIButton) {
        if let index = segments.indexOf(sender) where index != selectedSegmentIndex {
            selectedSegmentIndex = index
            sendActionsForControlEvents(.ValueChanged)
        }
    }

    private func selectSegmentAtIndex(index: Int) {
        segments.forEach { $0.selected = false }
        if index != UISegmentedControlNoSegment {
            segments[index].selected = true
        }
    }
}

以上是关于swift Swift中的通用分段控件的主要内容,如果未能解决你的问题,请参考以下文章