爱奇艺、优酷播放按钮动画。
实现原理是利用贝塞尔曲线和CAShapeLayer绘制出三角、圆弧、直线,然后通过核心动画实现的动态效果。
XLPlayButton 是继承UIButton的,只是创建方式和UIButton不同,其他的使用方法均一致。
创建方法
_iQiYiPlayButton = [[iQiYiPlayButton alloc] initWithFrame:CGRectMake(0, 0, 60, 60) state:iQiYiPlayButtonStatePlay];
唯一属性
/* 通过setter方式控制按钮动画 设置XLPlayButtonStatePlay显示播放按钮 设置XLPlayButtonStatePause显示暂停按钮 / @property (nonatomic, assign) XLPlayButtonState buttonState
切换状态方法
- (void)iQiYiPlayMethod { //通过判断当前状态 切换显示状态 if (_iQiYiPlayButton.buttonState == iQiYiPlayButtonStatePause) { _iQiYiPlayButton.buttonState = iQiYiPlayButtonStatePlay; }else { _iQiYiPlayButton.buttonState = iQiYiPlayButtonStatePause; } }