模仿苹果做了一个全局浮动按钮,可以拖拽,可以展开和收缩,自动靠边。实现步骤如下:
1.继承自UIView,重写init方法,在init里添加点击手势和拖动手势。加到appDelegate.window!里,实现全局浮动。
2.定制按钮样式,通过layer层画出五个嵌套的圆。
let layer = CAShapeLayer()
layer.path = path.cgPath
layer.fillColor = UIColor(white: CGFloat(white), alpha: CGFloat(alpha)).cgColor
layer.strokeColor = UIColor(white: CGFloat(white), alpha: CGFloat(alpha)).cgColor
self.layer.addSublayer(layer)
3.实现拖拽手势效果:
switch pan.state {
case UIGestureRecognizerState.began:
self.superview?.bringSubview(toFront: self) //拖拽开始
break
case UIGestureRecognizerState.changed: