今天在学习iOS一些简单动画,具体的动画实现是利用CADisplayLink计时器每秒调用60次setNeedsDisplay,接着在UIView里的drawRect中改变某个点的位置利用UIBezierPath绘制曲线。按道理讲,view上面应该只有一条曲线,UIView有个属性是clearsContextBeforeDrawing(默认为YES),即每次绘制之前都会先清理画布上所有的内容。但运行出来的结果是有很多条贝塞尔曲线出现在view上,即每次绘图都没有清除上一次绘制的曲线。
最后将该view的opaque设置为NO,或者将该view的backgroundColor随便设置一个颜色,问题就解决了。具体原因还没找到。。
总结:需要在drawRect中绘制时,一定要先设置该view的opaque或者backgroundColor!