先簡單的介紹下CAShapeLayer
1,CAShapeLayer繼承自CALayer桃序,可使用CALayer的所有屬性
2,CAShapeLayer需要和貝塞爾曲線配合使用才有意義迅耘。
Shape:形狀
貝塞爾曲線可以為其提供形狀板丽,而單獨(dú)使用CAShapeLayer是沒有任何意義的。
3,使用CAShapeLayer與貝塞爾曲線可以實現(xiàn)不在view的DrawRect方法中畫出一些想要的圖形
關(guān)于CAShapeLayer和DrawRect的比較
DrawRect:DrawRect屬于CoreGraphic框架,占用CPU,消耗性能大
CAShapeLayer:CAShapeLayer屬于CoreAnimation框架孩擂,通過GPU來渲染圖形,節(jié)省性能箱熬。動畫渲染直接提交給手機(jī)GPU类垦,不消耗內(nèi)存
貝塞爾曲線與CAShapeLayer的關(guān)系
1狈邑,CAShapeLayer中shape代表形狀的意思,所以需要形狀才能生效
2蚤认,貝塞爾曲線可以創(chuàng)建基于矢量的路徑
3米苹,貝塞爾曲線給CAShapeLayer提供路徑,CAShapeLayer在提供的路徑中進(jìn)行渲染烙懦。路徑會閉環(huán),所以繪制出了Shape
4赤炒,用于CAShapeLayer的貝塞爾曲線作為Path氯析,其path是一個首尾相接的閉環(huán)的曲線,即使該貝塞爾曲線不是一個閉環(huán)的曲線
CAShapeLayer的兩個參數(shù)莺褒,strokeEnd和strokeStart
Stroke:用筆畫的意思
在這里就是起始筆和結(jié)束筆的位置
Stroke為1的話就是一整圈掩缓,0.5就是半圈,0.25就是1/4圈遵岩。以此類推