一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希望未来技术之巅上有你们也有我。
Swift Control DashLineView(虚线) 下载链接
文章目录
效果

使用
c
let separatorLine = DashLineView()
separatorLine.lineColor = .lightGray
separatorLine.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(separatorLine)
separatorLine.snp.makeConstraints { make in
make.center.equalToSuperview()
make.width.equalToSuperview()
make.height.equalTo(1)
}
封装代码
bash
import UIKit
class DashLineView: UIView {
var lineColor: UIColor = .gray {
didSet {
dashLayer.strokeColor = lineColor.cgColor
}
}
private let dashLayer = CAShapeLayer()
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
private func setup() {
dashLayer.strokeColor = lineColor.cgColor
dashLayer.fillColor = UIColor.clear.cgColor
// 虚线长度2,间隔2
dashLayer.lineDashPattern = [4, 4]
dashLayer.lineWidth = 1
layer.addSublayer(dashLayer)
}
override func layoutSubviews() {
super.layoutSubviews()
let path = UIBezierPath()
path.move(to: CGPoint(x: 0, y: bounds.height / 2))
path.addLine(to: CGPoint(x: bounds.width, y: bounds.height / 2))
dashLayer.path = path.cgPath
dashLayer.frame = bounds
}
}