iOS基礎 - 觸摸事件&手勢識別

==================================================================數組

1、觸摸事件&手勢識別

1> 4個觸摸事件,針對視圖的多線程

2> 6個手勢識別(除了用代碼添加,也能夠用Storyboard添加)併發

附加在某一個特定視圖上的,其中須要注意輕掃手勢一般會附加到根視圖上。框架

大部分操做,都會在touchesBegan事件中處理,以防夜長夢多!性能

* touchesEnd事件一般用於處理touchesMoved事件中的收尾工做!動畫

響應者鏈條只須要理解「鏈條」的產生和事件傳遞的順序便可。spa

==================================================================線程

2、Quartz2D繪圖

1> 以圖形方式,實時繪圖的技術,能夠高效的繪製簡單圖形,增長界面的表現代理

2> 核心動畫 <- CALayer(負責UIView中的內容的) <- Quartz2Dorm

Quartz2DC語言的框架!

Quartz2D是跨平臺(MAC & iOS)的,大多數跨平臺的技術都是C語言框架的。

GCD(多線程)

==================================================================

3、CALayer圖層

1) 每個視圖都有一個根圖層,圖層用來負責視圖中內容的顯示,不負責響應事件

2) 圖層能夠添加子圖層,每個視圖有且僅有一個根圖層

3) 全部的非根圖層,都具備隱式動畫屬性,直接修改這些屬性,就能夠產生動畫

4) 核心動畫的本質是經過以修改圖層鍵值路徑的方式實現動畫的!

5) 在動畫過程當中,圖層其實是將視圖中的內容生成一張圖像參與動畫,視圖自己的位置並不會發生變化,其目的就是爲了提升性能!

圖層的工做順序

1) - (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx

代理方法中繪製根圖層中的全部內容

繪製結束後,調用視圖的

2- (void)drawRect:(CGRect)rect

從代理方法中,將繪製結果(圖像)傳給drawRect,直接將內容拷貝到屏幕

3) - (void)drawInContext:(CGContextRef)ctx

繪製子圖層中的內容

關於CALayer須要掌握的內容:

1. 記住可動畫屬性

position 位置

backgroundColor 背景顏色

opacity 透明度

transform 形變

cornerRadius 圓角

content 內容(id)圖像

==================================================================

4、CAAnimation 

基本動畫和關鍵幀動畫都是經過修改圖層的可動畫屬性實現的動畫方式,以健值路徑的方式修改。

要修改屬性,能夠利用view.layer.xxx智能提示幫助,不用硬記,能眼熟就行。

1) CABasicAnimation

fromValue 從哪裏來

toValue 到哪裏去

2) CAKeyFrameAnimation

values 一堆數值的數組

path 針對position屬性的動畫

3)   CAAnimationGroup

將基本動畫和關鍵幀動畫組合併發使用

須要注意的是:keyPath不要重複,羣組中的每一個動畫只能負責修改一個keyPath

4) *** CATransition(轉場) ***

type:轉場的類型

subType:方向(上下左右)

全部的動畫都不要忘記指定duration

其餘經常使用屬性

* repeatCount 重複次數

* autoReverse 自動翻轉

在絕大多數應用程序開發中,基本動畫和均可以使用塊代碼替代。關鍵幀動畫在使用負責效果時點綴的。

對以上動畫有印象,知道大概的使用方法,在須要的時候,去哪裏查詢便可。

轉場動畫使用仍是比較頻繁!

==================================================================

5、UIDynamic UI動力學

使用步驟:

1> 實例化一個animator

2> 實例化要參與仿真的視圖或者控件

3> 實例化仿真行爲

重力: Gravity

碰撞: Collision 有代理方法,能夠添加邊界碰撞

附加: Attachment 有剛性、彈性區別,設置damping便可

能夠附加到一個點,也能夠附加到一個視圖上

吸附: Snap 設置damping

: Push 單次推和連續推

若是是單次推,須要將active = YES

須要指定

力量

角度

元素屬性,一般只須要改彈力系數便可

4> 將行爲添加到animator,仿真馬上開始啓動

==================================================================

6、KVC & KVO

KVC - Key Value Coding

KVO - Key Value Observer

KVC是經過鍵值路徑的方式間接訪問對象屬性的,CAAnimation中能夠經過KVC直接動態添加屬性。

KVO是能夠經過鍵值路徑的方式觀察某一個對象屬性的變化,並及時通知!

關於KVO必定記住須要釋放,不然會影響性能!

==================================================================

相關文章
相關標籤/搜索