一、 CAShapeLayer的簡(jiǎn)介
關(guān)于CAShapeLayer比較好的文章:
放肆地使用UIBezierPath和CAShapeLayer畫各種圖形
CAShapeLayer繼承自CALayer
- 渲染快速犹赖。CAShapeLayer 使用了硬件加速试浙,繪制同一圖形會(huì)比用 Core Graphics 快很多董瞻。
- 高效使用內(nèi)存。一個(gè) CAShapeLayer 不需要像普通 CALayer 一樣創(chuàng)建一個(gè)寄宿圖形田巴,所以無論有多大钠糊,都不會(huì)占用太多的內(nèi)存。
- 不會(huì)被圖層邊界剪裁掉壹哺。一個(gè) CAShapeLayer 可以在邊界之外繪制眠蚂。你的圖層路徑不會(huì)像在使用 Core Graphics 的普通 CALayer 一樣被剪裁掉.
- 不會(huì)出現(xiàn)像素化。當(dāng)你給 CAShapeLayer 做 3D 變換時(shí)斗躏,它不像一個(gè)有寄宿圖的普通圖層一樣變得像素化。
屬性
// CAShapeLayer 繪制的路徑
@property(nullable) CGPathRef path;
//路徑中的填充顏色
@property(nullable) CGColorRef fillColor;
//填充規(guī)則
@property(copy) NSString *fillRule;
//畫筆顏色(路徑的顏色昔脯,邊框顏色)
@property(nullable) CGColorRef strokeColor;
//這是一組范圍值啄糙,路徑繪制開始和結(jié)束的范圍(0 -> 1)
@property CGFloat strokeStart;
@property CGFloat strokeEnd;
//設(shè)置虛線顯示的起點(diǎn)距離,設(shè)置為x云稚,則從長度為x之后的線開始顯示
@property CGFloat lineDashPhase;
//設(shè)置虛線線段的長度和空格的長度隧饼,@[@20,@30,@40,@50],畫20空30畫40空50
@property(nullable, copy) NSArray