使用 Swift 编写的 Android 风格分段控制器。
完全可定制。
将 YSSegmentedControl.swift
复制到您的项目中。
使用框架和标题创建 YSSegmentedControl
。
您可以使用回调初始化或委托初始化。
let segmented = YSSegmentedControl(
frame: CGRect(
x: 0,
y: 64,
width: view.frame.size.width,
height: 44),
titles: [
"First",
"Second",
"Third"
],
action: {
control, index in
println ("segmented did pressed \(index)")
})
let segmented = YSSegmentedControl(
frame: CGRect(
x: 0,
y: 64,
width: view.frame.size.width,
height: 44),
titles: [
"First",
"Second",
"Third"
])
设置委托,然后就可以开始使用了!
segmented.delegate = self
@objc protocol YSSegmentedControlDelegate {
optional func segmentedControlWillPressItemAtIndex (segmentedControl: YSSegmentedControl, index: Int)
optional func segmentedControlDidPressedItemAtIndex (segmentedControl: YSSegmentedControl, index: Int)
}
struct YSSegmentedControlAppearance {
var backgroundColor: UIColor
var selectedBackgroundColor: UIColor
var textColor: UIColor
var font: UIFont
var selectedTextColor: UIColor
var selectedFont: UIFont
var bottomLineColor: UIColor
var selectorColor: UIColor
var bottomLineHeight: CGFloat
var selectorHeight: CGFloat
}
默认外观如下:
appearance = YSSegmentedControlAppearance(
backgroundColor: UIColor.clearColor(),
selectedBackgroundColor: UIColor.clearColor(),
textColor: UIColor.grayColor(),
font: UIFont.systemFontOfSize(15),
selectedTextColor: UIColor.blackColor(),
selectedFont: UIFont.systemFontOfSize(15),
bottomLineColor: UIColor.blackColor(),
selectorColor: UIColor.blackColor(),
bottomLineHeight: 0.5,
selectorHeight: 2)
您可以通过以下方式更改外观:
segmented.appearance = YSSegmentedAppearance (...)
// or
segmented.appearance.titleColor = ...