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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

iOS核心动画之CALayer(1)

發布時間:2023/12/13 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS核心动画之CALayer(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文目錄
  • 一、什么是CALayer
  • 二、CALayer的簡單使用
回到頂部

一、什么是CALayer

* 在iOS系統中,你能看得見摸得著的東西基本上都是UIView,比如一個按鈕、一個文本標簽、一個文本輸入框、一個圖標等等,這些都是UIView。

* 其實UIView之所以能顯示在屏幕上,完全是因為它內部的一個

* 在創建UIView對象時,UIView內部會自動創建一個(即CALayer對象),通過UIView的layer屬性可以訪問這個層。當UIView需要顯示到屏幕上時,會調用drawRect:方法進行繪圖,并且會將所有內容繪制在自己的上,繪圖完畢后,系統會將拷貝到屏幕上,于是就完成了UIView的顯示。

* 換句話說,UIView本身不具備顯示的功能,是它內部的才有顯示功能。

?

回到頂部

二、CALayer的簡單使用

上面已經說過了,UIView之所以能夠顯示,完全是因為內部的CALayer對象。因此,通過操作這個CALayer對象,可以很方便地調整UIView的一些界面屬性,比如:陰影、圓角大小、邊框寬度和顏色等。

1.CALayer是被定義在QuartzCore框架中的,因此要想使用CALayer,先導入QuartzCore框架

1> 點擊項目名稱,然后點擊右邊TARGETS下面的target

2> 點擊Build Pases后,展開Link Binary....,添加 + 號

3> 在搜索框中輸入"Quartz",選中QuartzCore.framework,最后add添加

4> 添加完畢后,這個框架就會出現在項目文件夾中

如果你覺得位置不好看,還可以將它拖到Frameworks文件夾下,跟其他框架放一起

?

2.在項目代碼中導入QuartzCore框架的主頭文件

#import <QuartzCore/QuartzCore.h>

?

3.通過CALayer修改UIImageView的界面屬性

你也可以使用UIButton或者UILabel,這里就以UIImageView為例子

1> 先創建一個UIImageView,添加到控制器的view中

1 UIImage *image = [UIImage imageNamed:@"lufy.png"]; 2 UIImageView *imageView = [[[UIImageView alloc] initWithImage:image] autorelease]; 3 imageView.center = CGPointMake(100, 100); 4 [self.view addSubview:imageView];

2> 設置陰影

1 imageView.layer.shadowColor = [UIColor grayColor].CGColor; 2 imageView.layer.shadowOffset = CGSizeMake(10, 10); 3 imageView.layer.shadowOpacity = 0.5;

* 第1行設置陰影的顏色為灰色,注意,這里使用的是UIColor的CGColor屬性,是一種CGColorRef類型的數據

* 第2行設置陰影的偏移大小,可以看出陰影往原圖的右下角偏移

* 第3行設置陰影的不透明度為0.5,表示半透明。如果為1,代表完全不透明。

3>?設置圓角大小

通過layer屬性可以訪問視圖內部的CALayer對象

1 imageView.layer.cornerRadius = 10; 2 imageView.layer.masksToBounds = YES;

* 第1行設置圓角半徑為10

* 第2行的maskToBounds=YES:可以看做是強制內部的所有子層支持圓角效果,少了這個設置,UIImageView是不會有圓角效果的

* 注意,如果設置了maskToBounds=YES,那將不會有陰影效果

4> 設置邊框寬度和顏色

1 imageView.layer.borderWidth = 5; 2 imageView.layer.borderColor = [UIColor redColor].CGColor;

* 第1行設置邊框寬度為5

* 第2行設置邊框顏色為紅色

?

5> 設置旋轉

imageView.layer.transform = CATransform3DMakeRotation(M_PI_4, 0, 0, 1);

* 利用transform屬性可以設置旋轉、縮放等效果

* M_PI_4表示四分之π,順時針旋轉45°

* 后面的(0, 0, 1)表示Z軸這個向量,修改這個向量可以做一些三維旋轉效果,你可以隨便改個值試一下,比如(1, 1, 1)

* 總體的意思是layer會繞著Z軸順時針旋轉45°,也就是在x、y平面進行旋轉


總結

以上是生活随笔為你收集整理的iOS核心动画之CALayer(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

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