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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

iOS核心动画之CALayer-隐式动画

發布時間:2023/12/13 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS核心动画之CALayer-隐式动画 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文目錄
  • 一、隱式動畫屬性
  • 二、position和anchorPoint
回到頂部

一、隱式動畫屬性

* 在前面幾講中已經提到,每一個UIView內部都默認關聯著一個CALayer,我們可用稱這個Layer為Root Layer(根層)。所有的非Root Layer也就是手動創建的CALayer對象,都存在著隱式動畫。

* 當對非Root Layer的部分屬性進行相應的修改時,默認會自動產生一些動畫效果,這些屬性稱為Animatable Properties(可動畫屬性)。

* 列舉幾個常見的Animatable Properties:

  • bounds:用于設置CALayer的寬度和高度。修改這個屬性會產生縮放動畫
  • backgroundColor:用于設置CALayer的背景色。修改這個屬性會產生背景色的漸變動畫
  • position:用于設置CALayer的位置。修改這個屬性會產生平移動畫

比如:假設一開始CALayer的position為(100, 100),然后在某個時刻修改為(200, 200),那么整個CALayer就會在短時間內從(100, 100)這個位置平移到(200, 200)

* 我們也可以從官方文檔中查詢所有的Animatable Properties

1.點擊Window -> Organizer

?

2.在搜索框輸入"animatable"即可

?

回到頂部

二、position和anchorPoint

* position和anchorPoint屬性都是CGPoint類型的

* position可以用來設置CALayer在父層中的位置,它是以父層的左上角為坐標原點(0, 0)

* anchorPoint稱為"定位點",它決定著CALayer身上的哪個點會在position屬性所指的位置。它的x、y取值范圍都是0~1,默認值為(0.5, 0.5)

1.創建一個CALayer,添加到控制器的view的layer中

1 CALayer *myLayer = [CALayer layer]; 2 // 設置層的寬度和高度(100x100) 3 myLayer.bounds = CGRectMake(0, 0, 100, 100); 4 // 設置層的位置 5 myLayer.position = CGPointMake(100, 100); 6 // 設置層的背景顏色:紅色 7 myLayer.backgroundColor = [UIColor redColor].CGColor; 8 9 // 添加myLayer到控制器的view的layer中 10 [self.view.layer addSublayer:myLayer];

第5行設置了myLayer的position為(100, 100),又因為anchorPoint默認是(0.5, 0.5),所以最后的效果是:myLayer的中點會在父層的(100, 100)位置

注意,藍色線是我自己加上去的,方便大家理解,并不是默認的顯示效果。兩條藍色線的寬度均為100。

?

2.若將anchorPoint改為(0, 0),myLayer的左上角會在(100, 100)位置

1 myLayer.anchorPoint = CGPointMake(0, 0);

?

3.將anchorPoint改為(1, 1),myLayer的右下角會在(100, 100)位置

1 myLayer.anchorPoint = CGPointMake(1, 1);

?

?

4.將anchorPoint改為(0, 1),myLayer的左下角會在(100, 100)位置

1 myLayer.anchorPoint = CGPointMake(0, 1);

我想,你應該已經明白anchorPoint的用途了吧,它決定著CALayer身上的哪個點會在position所指的位置上。它的x、y取值范圍都是0~1,默認值為(0.5, 0.5),因此,默認情況下,CALayer的中點會在position所指定的位置上。當anchorPoint為其他值時,以此類推。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

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

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