今天学习了使用CAShapeLayer进行画圆,使用上算是比较简单:
首先是设定layer的path,如果不设置strokeStart和strokeEnd,默认strokeStart=0,strokeEnd=1,当然可以设置0-1之间的其他值
接下来我们对strokeStart和strokeEnd应用动画,CABasicAnimation需要设置fromValue,toValue,根据fromValue和toValue的不同,分为以下几种情况:
对strokeStart应用动画时:
- fromValue<toValue,则实际上是在消除从0到toValue这部分的绘图,但是只有fromValue到toValue这部分会有动画,0-fromValue这部分会立即消除,而toValue到1这部分不会改变
- fromValue>toValue,则实际上是在画从fromValue到toValue这部分的绘图,但是只有fromValue到toValue这部分会有动画,1到fromValue这部分不会改变,而toValue到0这部分会立即消除
总结而言:max(fromValue,toValue)到1这一段绘图不会改变,而0到min(fromValue,toValue)这一段绘图会立即消除
对strokeEnd应用动画时: - fromValue<toValue则实际上是在画从fromValue到toValue这部分的绘图,但是只有fromValue到toValue这部分会有动画,1到fromValue这部分不会改变
- fromValue>toValue,则实际上是在消除从1到toValue这部分的绘图,但是只有fromValue到toValue这部分会有动画,1到fromValue这部分会立即消除