日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IOS--CALayer的介绍及使用技巧

發布時間:2025/3/17 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOS--CALayer的介绍及使用技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

? 首先對CALayer進行簡單的介紹:

1.在UIView中,CALayer只是一個類的聲明,因此需要添加?QuartzCore框架

2.UIKit框架只能應用到ios中,但是Quartz2D是跨平臺的,因此在使用顏色時應該將UIColor轉換成CGColor

3.修改圖層相當于修改了UIView屬性,即修改了界面屬性

4.形變屬性既可以使用形變函數制定,也可以使用keypath制定

創建imageView并設置邊框屬性(基礎)

1.bounds:寬度和高度,x y設置為0;

2.position:位置(默認指中心點,具體由anchorPoint決定

3.anchorPoint:錨點,(x,y的范圍都是0~1),決定了position的含義

4.backgroundColor:背景顏色(CGColorRef 類型)

5.borderColor:邊框顏色

6.borderWidth:邊框寬度

7.borderRadius:圓角半徑

8.contents:內容

???UIImageView?*imgView?=?[[UIImageView?alloc]?initWithFrame:CGRectMake(90,?90,?90,?90)];imgView.backgroundColor?=?[UIColor?redColor];imgView.image?=?[UIImage?imageNamed:@"1.jpg"];[self.view?addSubview:imgView];//1.獲取layer設置邊框imgView.layer.borderWidth?=?1;imgView.layer.borderColor?=?[UIColor?darkGrayColor].CGColor;//?2.設置弧度imgView.layer.cornerRadius?=?45;imgView.layer.masksToBounds?=?YES;imgView.clipsToBounds?=?YES;//3.設置陰影//如果設置imgView.layer.masksToBounds?=?YES;??則不會出現陰影imgView.layer.shadowColor?=?[UIColor?redColor].CGColor;imgView.layer.shadowOffset?=?CGSizeMake(5,?5);imgView.layer.shadowOpacity?=?0.5;//對imgView的layer層的transform?屬性進行操作(第一種方法)//平移imgView.layer.transform?=?CATransform3DMakeTranslation(0,?200,?0);//旋轉imgView.layer.transform?=?CATransform3DMakeRotation(M_PI_4,?1,?0,?0);//縮放imgView.layer.transform?=?CATransform3DMakeScale(2,?2,?1);//對imgView的layer層的transform?屬性進行操作(第二種方法)通過kvc的方法//平移[imgView.layer?setValue:@100?forKeyPath:@"transform.translation.x"];//旋轉[imgView.layer?setValue:@M_PI_2?forKeyPath:@"transform.rotation.z"];//縮放[imgView.layer?setValue:@0.5?forKeyPath:@"transform.scale.x"];

? CALayer的基本屬性

//創建圖層CALayer?*subLayer?=?[[CALayer?alloc]?init];//將圖層添加到view的根圖層上[self.view.layer?addSublayer:subLayer];//----------常用的屬性----------//設置圖層的大小subLayer.bounds?=?CGRectMake(0,?0,?200,?200);//設置圖層的顯示位置subLayer.position?=?CGPointMake(100,?100);//設置背景顏色subLayer.backgroundColor?=?[UIColor?redColor].CGColor;//設置錨點//決定了position的含義,x和y的范圍是0~1subLayer.anchorPoint?=?CGPointMake(0.5,?0.5);//設置圖層顯示的內容UIImage?*img?=?[UIImage?imageNamed:@"1.jpg"];subLayer.contents?=?(id)img.CGImage;

? CALayer中的隱式動畫(隱式動畫的默認時間為0.25秒)

? ?每一個UIView內部都默認關聯著一個CALayer,稱這個layer為Root Layer;

所有的非Root Layer都存在著隱式動畫,默認時長為1/4秒

bounds:縮放動畫

position:平移動畫

opacity:淡入淡出的動畫(改變透明度)

更多的隱式動畫屬性可在文檔中搜索

使用CALayer繪圖,會調用自己的drawRect方法

//點擊界面觸觸發的方法 -?(void)touchesBegan:(NSSet?*)touches?withEvent:(UIEvent?*)event?{//隱式動畫的時間:0.25秒//如果不想存在動畫//關閉動畫 //????[CATransaction?begin]; //????[CATransaction?setDisableActions:YES];//取得點擊的坐標UITouch?*touch?=?[touches?anyObject];CGPoint?point?=?[touch?locationInView:self.view];//1.修改layer的位置_layer.position?=?point;//2、改變layer的大小CGFloat?num?=?arc4random_uniform(50)?+?30;_layer.bounds?=?CGRectMake(0,?0,?num,?num);//3、修改layer的透明度_layer.opacity?=?arc4random_uniform(10)*0.1;//4、背景顏色_layer.backgroundColor?=?[UIColor?colorWithRed:arc4random_uniform(10)*0.1?green:arc4random_uniform(10)*0.1?blue:arc4random_uniform(10)*0.1?alpha:1].CGColor;//5、設置邊框的弧度_layer.cornerRadius?=?arc4random_uniform(20);//6、transform_layer.transform?=?CATransform3DMakeScale(2,?1,?1);//提交[CATransaction?commit];}








轉載于:https://my.oschina.net/zhangqy/blog/507833

總結

以上是生活随笔為你收集整理的IOS--CALayer的介绍及使用技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。