成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Core Animation編程指南

移動開發 iOS
本文將簡介Core Animation的編程指南。Core Animation是一個Objc類庫,它提供基于熟悉的視圖抽象,可以使用樹狀的對象體系創建復雜的用戶界面、輕量的數據結構。可以同時對上百個層進行展示和動畫等功能。

Core Animation是一個Objc類庫,用于處理圖像渲染,投射和動畫。

它提供以下功能:

通過簡單的編程模型提供高性能的合成效果。

基于熟悉的視圖抽象,可以使用樹狀的對象體系創建復雜的用戶界面

輕量的數據結構。可以同時對上百個層進行展示和動畫。

抽象的動畫接口,能夠讓動畫運行在獨立的線程。一旦動畫配制完畢并啟動后,Core Animation將負責它的運行和楨速。

提升應用程序性能。程序只需要在變化時重畫。將應用程序在resize時需要做的處理降到最低并提供layout服務層,Core Animation讓你不再需要手動處理楨速。

靈活的layout管理器模型,自帶的管理器能讓你指定層和其兄弟層的相對位置和大小。

使用 Core Animation,開發者不再需要底層圖形接口就可以創建高性能的動態用戶界面了。

Core Animation類體系

 

images/lk_class_hierarchy.jpg

Core Animation類圖Core Animation的類可分為以下幾組:

提供展示的內容的Layer類

Animation 和 timing 類

Layout 和 constraint 類

將多個修改合成一個原子更新操作的事務類

基本的 Core Animatin 類包含在 Quartz Core 框架中,也有另外的layer類在其他框架中定義。下圖展示了 Core Animation 的類體系。

CALayer

CALayer 是Core Animation的基礎,它的作用類似于 NSView 。每一個 CALayer 可以擁有一個父層和多個子層,由此形成一個樹狀結構的體系,叫做 layer tree。

層從后往前的順序進行渲染,子層基于和父層相對的局部坐標系統。還可以對層進行矩陣轉換以實現復雜的展示效果.

在 CALayer 中,除了繼承還有多種方式可以為它提供顯示的內容,這一點有別于其他視圖類:

把層的 content 屬性設置為Core Graphics image,或者代理

提供代理對Core Graphics image context進行畫圖

設置層公用的一些可視化屬性,比如背景色,透明度等

Subclassing CALayer and implementing any of the above techniques in a more encapsulated manner.

動畫和時間函數

層的很多可視屬性都可以產生隱式動畫,這些屬性稱為可動畫屬性,修改層的可動畫屬性自動就會產生從當前值變化到目標值的動畫,比如設置層的hidden屬性為YES,就會產生一個淡出的動畫。大部分可動畫屬性都有默認的動畫,這些動畫也是可以定制的。

可動畫屬性也可以進行顯式動畫,要創建顯式動畫你可以創建Core Animation動畫類的實例并指定視覺效果,顯式動畫不會修改層對象的屬性值,它僅僅是展示動畫效果而已。

Core Animation既提供基本動畫也提供關鍵楨動畫,你可以對層的整個內容進行動畫也可以對部分屬性進行動畫。所有動畫類都繼承自抽象類 CAAnimation 。 CAAnimation 遵守 CAMediaTiming 協議,可以對動畫進行簡單的時長,速度,重復次數控制。它還遵守 CAAction 協議,可以讓動畫在層觸發action時啟動.

動畫類還定義了描述動畫速度的基于簡單bezier曲線的時間函數。比如ease-out時間函數會讓動畫在快結束的時候減速。

Core Animation提供了許多或具體或抽象的動畫類:

CATransition 提供作用于整個層的轉換效果。你還可以通過自定義的Core Image filter擴展轉換效果。

CAAnimationGroup 可以打包多個動畫對象并讓他們同時執行。

CAPropertyAnimation 支持基于屬性關鍵路徑的動畫。

CABasicAnimation 對屬性做簡單的插值

CAKeyframeAnimation 對關鍵楨動畫提供支持。指定需要動畫屬性的關鍵路徑,一個表示每一個階段對應的值的數組,還有一個關鍵楨時間和時間函數的數組。動畫運行時,依次設置每一個值的指定插值。

Layout管理類

Mac OS X 的 Core Animation 還提供更靈活的機制可以讓你自己編寫自定義的 layout 管理器。

Core Animation 的 CAConstraint 類是個layout管理器,它根據你指定的約束條件對子層進行排列。每一個約束條件(封裝在 CAConstraint 類的實例中)描述層和兄弟層或父層之間的幾何屬性的關系。

事務管理類

對可動畫屬性的任何修改都應該在事務中完成。 CATransition 類負責將多個動畫操作打包成原子更新操作然后執行。支持嵌套事務。

Core Animation 支持兩種事務:隱式和顯式。在當前沒有事務的情況下對可動畫屬性進行修改會自動創建一個隱式的事務,在當前線程下一次迭代時自動提交。要創建顯式事務,在對層進行修改之前給 CATransition 類發一個 begin 消息,修改后再發一個 commit 消息。

責任編輯:佚名 來源: yi-programmer
相關推薦

2014-12-31 13:31:31

圖形動畫翻頁

2011-07-03 10:12:35

Core Animat

2011-08-09 17:21:37

2011-07-03 10:05:52

Core Animat

2011-06-13 15:00:00

Cocoa TouchiOS

2011-08-16 18:38:23

Core Animat動畫

2011-07-29 09:45:11

iOS 圖形圖像 Core Anima

2011-07-18 16:57:36

Core Animation 動畫

2015-07-27 10:27:32

IOS基礎知識核心動畫

2011-08-17 14:27:17

Core AnimatQuartz2D

2010-11-17 11:31:22

Scala基礎面向對象Scala

2024-06-11 09:00:00

異步編程代碼

2010-07-20 13:32:25

Perl編程格式

2011-12-12 11:16:02

iOS并發編程

2017-01-12 14:55:50

JavaScript編程

2015-09-22 10:04:38

GoogleJava編程

2023-01-18 23:20:25

編程開發

2017-02-13 13:14:07

2010-09-14 13:22:17

Scala編程指南Scala

2025-01-10 00:41:38

版本控制API
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产免费自拍 | 亚洲精品9999 | 正在播放一区二区 | 日日日日日日bbbbb视频 | 91久久国产综合久久 | 国产在线激情视频 | 国产一区不卡 | 亚洲免费在线 | 国产一区不卡 | 亚洲一区 | 国产一伦一伦一伦 | 亚洲成人一区 | 国产精品久久久久无码av | 伊人免费在线观看 | 国产亚洲网站 | 一区二区三区国产 | 日韩成人在线视频 | 日本人做爰大片免费观看一老师 | 欧美一级欧美三级在线观看 | 中文精品视频 | 久久精彩 | 国产二区精品视频 | 成人一级片在线观看 | 色.com | 国产高清免费视频 | 国产91久久久久蜜臀青青天草二 | 国产中文字幕在线 | 成人性视频免费网站 | 天天夜天天操 | 欧美性一区二区三区 | 四虎在线播放 | 国产精品久久久久久中文字 | 欧美精品福利 | 欧美精品二区 | 亚洲不卡在线观看 | 精品一区在线看 | 欧美视频在线免费 | 成人做爰9片免费看网站 | 欧美亚洲综合久久 | 日本视频中文字幕 | 国产在线视频在线观看 |