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中的通用分段控件的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 的标头中使用分段控件更改 UICollectionView 的内容
如何在 Swift 的分段控件中调整 textLabel 的大小?
如何在 Swift 的工具栏顶部居中分段控件?
Swift 分段控制和 UITableView
Swift - 如何让分段控制锁定在屏幕顶部
以编程方式向 Swift 中的视图添加约束时出错