在阅读电子书的时候,可能有一个功能是长按一段文字,并出现自定义的光标。
效果图
具体代码如下:
class CustomCursorView: UIView {// 圈圈在下边private var circleOnBottom: Bool = false// 光标颜色var cursorColor: UIColor = .red { didSet { setNeedsDisplay() } } init(frame: CGRect, circleOnBottom: Bool) { super.init(frame: frame) self.circleOnBottom = circleOnBottom backgroundColor = UIColor.clear } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func draw(_ rect: CGRect) { let context = UIGraphicsGetCurrentContext() cursorColor.set() let cursorWidth = bounds.width / 2 context?.addRect(CGRect(x: cursorWidth * 0.5, y: circleOnBottom ? 0 : 1, width: cursorWidth, height: bounds.height - 1)) context?.fillPath() if circleOnBottom { context?.addEllipse(in: CGRect(x: 0, y: bounds.height - bounds.width, width: bounds.width, height: bounds.width)) } else { context?.addEllipse(in: CGRect(x: 0, y: 0, width: bounds.width, height: bounds.width)) } context?.fillPath() cursorColor.set() } }
使用方法:
let leftCursor = CustomCursorView(frame: CGRect(x: 100, y: 100, width: 8, height: 30), circleOnBottom: false) view.addSubview(leftCursor) let rightCursor = CustomCursorView(frame: CGRect(x: 200, y: 100, width: 8, height: 30), circleOnBottom: true) view.addSubview(rightCursor)
作者:三_木子_
链接:https://www.jianshu.com/p/7e090b12982a
點擊查看更多內容
為 TA 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦