知识点复习
CHENYILONG
Blog
1224筆記
知識點(diǎn)復(fù)習(xí)
1. 觸摸事件&手勢識別
1> 4個觸摸事件,針對視圖的
2> 6個手勢識別(除了用代碼添加,也可以用Storyboard添加)
附加在某一個特定視圖上的,其中需要注意輕掃手勢通常會附加到根視圖上。
* 大部分操作,都會在touchesBegan事件中處理,以防夜長夢多!
* touchesEnd事件通常用于處理touchesMoved事件中的收尾工作!
以上兩項(xiàng)內(nèi)容都必須要掌握
3> 響應(yīng)者鏈條,目的是為了讓大家能夠理解手勢觸摸事件的傳遞過程,一旦遇到需要攔截事件時,知道從何處下手。
響應(yīng)者鏈條只需要理解“鏈條”的產(chǎn)生和事件傳遞的順序即可。
==================================================================
2. Quartz2D繪圖
學(xué)習(xí)的線路圖,為什么要學(xué)習(xí)Quartz2D
1> 以圖形方式,實(shí)時繪圖的技術(shù),可以高效的繪制簡單圖形,增加界面的表現(xiàn)
2> 核心動畫 <- CALayer(負(fù)責(zé)UIView中的內(nèi)容的) <- Quartz2D
Quartz2D是C語言的框架!根OC語法不同
Quartz2D是跨平臺(MAC & iOS)的,大多數(shù)跨平臺的技術(shù)都是C語言框架的。
GCD(多線程)
需要掌握的內(nèi)容:
1> 理解上下文的概念
2> 理解并且創(chuàng)建簡單的繪圖路徑
3> 能夠完成直線、矩形、圓形、圓弧、圖像、文本的繪制,可以輔助快速的提升UI界面的表現(xiàn)
4> 能夠用圖像上下文繪制圖像
5> 繪制徑向漸變、PDF(理解就行)
6> 所有的繪圖工作必須在drawRect:方法中進(jìn)行,如果需要更新顯示,使用setNeedDisplay方法。
==================================================================
3. CALayer圖層
1) 每一個視圖都有一個根圖層,圖層用來負(fù)責(zé)視圖中內(nèi)容的顯示,不負(fù)責(zé)響應(yīng)事件
2) 圖層可以添加子圖層,每一個視圖有且僅有一個根圖層
3) 所有的非根圖層,都具有隱式動畫屬性,直接修改這些屬性,就可以產(chǎn)生動畫
4) 核心動畫的本質(zhì)是通過以修改圖層鍵值路徑的方式實(shí)現(xiàn)動畫的!
5) 在動畫過程中,圖層實(shí)際上是將視圖中的內(nèi)容生成一張圖像參與動畫,視圖本身的位置并不會發(fā)生變化,其目的就是為了提高性能!
* 圖層的工作順序
1) 在
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
代理方法中繪制根圖層中的所有內(nèi)容
繪制結(jié)束后,調(diào)用視圖的
2)
- (void)drawRect:(CGRect)rect
從代理方法中,將繪制結(jié)果(圖像)傳給drawRect,直接將內(nèi)容拷貝到屏幕
3) 調(diào)用子圖層的
- (void)drawInContext:(CGContextRef)ctx
繪制子圖層中的內(nèi)容
關(guān)于CALayer需要掌握的內(nèi)容:
1. 記住可動畫屬性
position位置
backgroundColor背景顏色
opacity透明度
transform形變
cornerRadius圓角
content內(nèi)容(id)圖像
==================================================================
4. CAAnimation
基本動畫和關(guān)鍵幀動畫都是通過修改圖層的可動畫屬性實(shí)現(xiàn)的動畫方式,以健值路徑的方式修改。
要修改屬性,可以利用view.layer.xxx智能提示幫助,不用硬記,能眼熟就行。
1) CABasicAnimation
fromValue從哪里來
toValue到哪里去
2) CAKeyFrameAnimation
values一堆數(shù)值的數(shù)組
path針對position屬性的動畫
3) CAAnimationGroup
將基本動畫和關(guān)鍵幀動畫組合并發(fā)使用
需要注意的是:keyPath不要重復(fù),群組中的每個動畫只能負(fù)責(zé)修改一個keyPath
4) *** CATransition(轉(zhuǎn)場) ***
type:轉(zhuǎn)場的類型
subType:方向(上下左右)
所有的動畫都不要忘記指定duration。
其他常用屬性
* repeatCount重復(fù)次數(shù)
* autoReverse自動翻轉(zhuǎn)
在絕大多數(shù)應(yīng)用程序開發(fā)中,基本動畫和都可以使用塊代碼替代。關(guān)鍵幀動畫在使用負(fù)責(zé)效果時點(diǎn)綴的。
對以上動畫有印象,知道大概的使用方法,在需要的時候,去哪里查詢即可。
* 轉(zhuǎn)場動畫使用還是比較頻繁!
==================================================================
5. UIDynamic UI動力學(xué)
使用步驟:
1> 實(shí)例化一個animator
2> 實(shí)例化要參與仿真的視圖或者控件
3> 實(shí)例化仿真行為
重力: Gravity
碰撞: Collision有代理方法,可以添加邊界碰撞
附加: Attachment有剛性、彈性區(qū)別,設(shè)置damping即可
可以附加到一個點(diǎn),也可以附加到一個視圖上
吸附: Snap設(shè)置damping
推:Push單次推和連續(xù)推
如果是單次推,需要將active = YES
需要指定
* 力量
* 角度
元素屬性,通常只需要改彈力系數(shù)即可
4> 將行為添加到animator,仿真立刻開始啟動
==================================================================
6. KVC & KVO
KVC - Key Value Coding
KVO - Key Value Observer
KVC是通過鍵值路徑的方式間接訪問對象屬性的,CAAnimation中可以通過KVC直接動態(tài)添加屬性。
KVO是可以通過鍵值路徑的方式觀察某一個對象屬性的變化,并及時通知!
關(guān)于KVO一定記住需要釋放,否則會影響性能!
==================================================================
今天綜合演練項(xiàng)目程序結(jié)構(gòu)需要理解和掌握
?chenyilong. Powered byPostach.io
Blog
作者:
出處:http://www.cnblogs.com/ChenYilong/(點(diǎn)擊RSS訂閱)
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,
但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
新浪微博
有道云筆記
麥庫
EverNote
Pocket
Instapaper
更多
總結(jié)
- 上一篇: 2048理论上最高能玩到多少分?
- 下一篇: Qt QSS QPushButton 详