swift 自定义分段控制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 自定义分段控制相关的知识,希望对你有一定的参考价值。
import UIKit
@IBDesignable class CustomSegmentedControl: UISegmentedControl {
override init(frame: CGRect) {
super.init(frame: frame)
setupView()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
setupView()
}
func update(){
let attributes = [ NSAttributedString.Key.foregroundColor: UIColor.white ]
setTitleTextAttributes(attributes, for: .normal)
setTitleTextAttributes(attributes, for: .selected)
for index in 0 ..< numberOfSegments {
if let image = imageForSegment(at: index)?.withRenderingMode(.alwaysOriginal) {
setImage(image, forSegmentAt: index)
}
}
}
func setupView() {
let insets = UIEdgeInsets(top: 7, left: 7, bottom: 7, right: 7)
let backgroundNormal = #imageLiteral(resourceName: "SegmentedControl-Background-Normal").resizableImage(withCapInsets: insets, resizingMode: .stretch)
let backgroundSelected = #imageLiteral(resourceName: "SegmentedControl-Background-Selected").resizableImage(withCapInsets: insets, resizingMode: .stretch)
let attributes = [ NSAttributedString.Key.foregroundColor: UIColor.white ]
setBackgroundImage(backgroundNormal, for: .normal, barMetrics: .default)
setBackgroundImage(backgroundSelected, for: .selected, barMetrics: .default)
setDividerImage(#imageLiteral(resourceName: "SegmentedControl-Divider-NormalNormal"), forLeftSegmentState: .normal, rightSegmentState: .normal, barMetrics: .default)
setDividerImage(#imageLiteral(resourceName: "SegmentedControl-Divider-SelectedNormal"), forLeftSegmentState: .selected, rightSegmentState: .normal, barMetrics: .default)
setDividerImage(#imageLiteral(resourceName: "SegmentedControl-Divider-NormalSelected"), forLeftSegmentState: .normal, rightSegmentState: .selected, barMetrics: .default)
setTitleTextAttributes(attributes, for: .normal)
setTitleTextAttributes(attributes, for: .selected)
for index in 0 ..< numberOfSegments {
if let image = imageForSegment(at: index)?.withRenderingMode(.alwaysOriginal) {
setImage(image, forSegmentAt: index)
}
}
}
}
以上是关于swift 自定义分段控制的主要内容,如果未能解决你的问题,请参考以下文章