iOS(CAShapeLayer弧线)-点击时文字变转圈的按钮

朋友说想要一个点击变成带缺口圆圈旋转的按钮,用来实现类似网络请求转菊花的等待效果。从网上了解了一下,决定使用CAShapeLayer来实现效果(因为我觉得可以很方便的画出带缺口的圆)。


整体功能我封装成一个button,使用方法和普通button一样。在需要停止动画的地方加上activityIndicatorViewShow:方法(传NO是取消动画,YES是开始动画)。

以下是核心实现代码:

在这个方法里根据传入参数判断开始/取消动画。在开始动画的实现里,为了只显示弧线,将button本来的一些属性全部清除,并且以中心点缩小成方形,以方便旋转。在取消动画的实现里还原button。

这里使用了CAShapeLayer,以button调整为方形的frame来画圆。因为是添加在button的layer上的,所以在取消动画的时候要清除掉。

这里是添加的旋转动画,我用的是修改button的偏移角度来实现旋转动画。

在demo里,CAShapeLayer的使用是从网上借鉴的,虽然使用的并不深奥,但也加深了了解。最后附上demo:http://www.oschina.net/code/snippet_2370909_56303

iOS点击时文字变转圈的按钮

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容