在阅读电子书的时候,可能有一个功能是长按一段文字,并出现自定义的光标。
效果图
WX20181220-171219@2x.png
具体代码如下:
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 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦