只是簡單了解幾種子類
CAShapeLayer
CAShapeLayer是一個通過矢量圖形來繪制的圖層子類仔蝌,繪圖可查看繪制相關方法
圓角可以使用CAShaperLayer自定制自己的圓角圖層吠架,設置為視圖圖層的mask
CATextLayer
- @property(nullable, copy) id string;
文本呈現(xiàn),默認為nil,可以是NSString類型或者NSAttributedString類型
- @property(nullable) CFTypeRef font;
字體使用,可能是一個CTFontRef,一個CGFontRef或者一個字符串命名體,默認為Helvetica字體窘拯;僅當string不是一個NSAttributedString的時候使用; - @property CGFloat fontSize;
字體大小坝茎,默認為36涤姊;僅當string不是一個NSAttributedString的時候使用; - @property CGColorRef foregroundColor;
用來繪制文本的顏色嗤放,默認為不透明的白色思喊;僅當string不是一個NSAttributedString的時候使用; - @property(getter=isWrapped) BOOL wrapped;
文本自適應圖層大小次酌,默認是NO恨课; - @property(copy) NSString *truncationMode;
描述如何將字符串截斷以適應圖層大小,設置縮短的部位岳服,可選擇沒有剂公,開始,中間吊宋,和結束纲辽; - @property(copy) NSString *alignmentMode;
描述如何在該層中的單行的文本對齊,設置字體的排列格式璃搜,可選擇自然拖吼,左,右这吻,居中和自適應吊档; - @property CGFloat contentsScale;
使用CATextLayer設置文本,可能會產生模糊狀態(tài)唾糯,因為該默認的分辨率不是retina怠硼,設置如下代碼即可:
textLayer.contentsScale = [UIScreen mainScreen].scale;
CATransformLayer
可以盛放立方體對象
CAGradientLayer
CAReplicatorLayer
CAReplicatorLayer的目的是為了高效的生成許多相似的圖層
- @property NSInteger instanceCount;
拷貝的次數(shù) - @property BOOL preservesDepth;
是否開啟景深效果 - @property CFTimeInterval instanceDelay;
當CAReplicatorLayer的子Layer層進行動畫的時候鬼贱,拷貝的副本執(zhí)行動畫的延時 - @property CATransform3D instanceTransform;
拷貝副本的3D變換 - @property(nullable) CGColorRef instanceColor;
拷貝副本的顏色變換 - @property float instanceRedOffset;
@property float instanceGreenOffset;
@property float instanceBlueOffset;
拷貝副本色色值變化,每次變化以上一次為基準 - @property float instanceAlphaOffset;
拷貝副本的透明度變化
CAScrollLayer
可用作UIScrollView的替代品香璃,我們可以將CASrollLayer作為圖層的宿主圖層这难,自定義一個UIView,添加滑動手勢之后增显,就能顯示一個大于視圖frame的圖層
- (void)scrollToPoint:(CGPoint)p
把指定點p滾動到左上角。點坐標可以是負值脐帝。
- (void)scrollToRect:(CGRect)r
滾動使指定區(qū)域r同云。如果r.size > self.bounds.size,則r.size = self.bounds.size堵腹。
- (void)scrollPoint:(CGPoint)p
此方法是在CALayer的分類中實現(xiàn)炸站。改方法是從自身開始往父圖層找到最近的CAScrollLayer層,然后調用-scrollToPoint:方法疚顷,如果沒有找到CAScrollLayer層則不做任何處理旱易。
- (void)scrollRectToVisible:(CGRect)r
此方法是在CALayer的分類中實現(xiàn)。改方法是從自身開始往父圖層找到最近的CAScrollLayer層腿堤,然后調用-scrollToRect:方法阀坏,如果沒有找到CAScrollLayer層則不做任何處理。
以下幾種后續(xù)單獨學習
- CATiledLayer 可繪制高分辨率大圖或者PDF
- CAEmitterLayer 創(chuàng)建粒子動畫
- CAEAGLLayer 用來顯示任意的OpenGL圖形
- AVPlayerLayer 視頻播放層