Day21編程
回顧:ide
1 Core Animation函數
在CA上面是UIKitpost
在CA的下邊是Core Animation動畫
2. 針對Core Animation編程spa
針對CALayer編程,經過UIView的layer屬性達到CALayer的對象orm
經過LAyer屬性能夠作效果server
a.圓角對象
b.添加子視圖ci
c.設置背景色陰影
d.使用CABasicAnimation實現動畫的步驟:
step1:建立動畫對象使用構造方法時,傳入的是一個固定的字符串------position 位移 transform 旋轉 opacity 變形
step2:設置屬性 FormValue 和ToValue
step3:將動畫效果註冊到一個子視圖對象的Layer層中
e.針對CALayer作變形時,特別是旋轉動畫,能夠是3D的變形分別繞X Y Z 三個軸進行旋轉,同時須要使用一組特有的函數。
CATransform3DMakeXXX或者是沒有make 的那組函數
3. UIKit Dynamic
3.1 UIDynamic Animation描述力場
3.2 行爲:UIGravityBehavior 重力行爲
UICollectionBehavior碰撞
UIAttachmentBehavior吸附行爲
UISnapBehavior閃爍
今天:
1. 在設置吸附的時候能夠設置吸附行爲的頻率
//設置吸行爲的頻率
self.attachmen.frequency=1; 值越大橡皮筋越短
//設置吸附行爲的阻尼(彈性係數)
self.attachmen.damping=0.1;
1.4 閃爍行爲:UISnapBehavior
1.5 推力行爲:UIPushBehavior
2. 彈簧效果的短消息
思路:利用手指移動的距離,以及item離手指點的位置的遠近,產生一個變化的值,使用這個值來修改全部CollectionView中的item的錨點
步驟:
step1:首先計算scroll的距離SCrollDelta
step2:爲了獲得每一個item與觸摸的點的之間的距離,須要直到觸摸點的座標touchLocation
step3:能夠根據距離對每一個錨點進行設置了,簡單計算出來原來錨點與觸摸點之間的距離distanceFromTouch並計算一個係數
step4:接下來,對於當前的item 咱們要是、獲取其當前錨點的位置,而後將其根據scrollDelta的係數和剛纔計算的係數,從新設定錨點的位置。
step5:最後須要告訴UIDynamicAnimation已經完成了對完成了對錨點的更新,如今能夠開始跟新位置,並隨時準備collectionView取得LayoutAttibutes的收據了
3. 通知(notification)
3.1 是什麼?
是一個觀察這模式的具體現
觀察着模式:對一個對象A想直到另外一個B狀態是否發生了改變,思路是在B 對象上註冊一個觀察着,當對象B的狀態發生改變時,通知對象A 對象A收到通知後進行的處理的一種模式。
其中觀察着模式的一種解決方案叫作----------廣播
系統中的通知就是廣播的一種體現
3.2 好處:
一個對象不須要知道消息的接受者是誰,就能夠將一些消息發送給須要的接受者。
有時發送消息的對象沒法知道那些對象,有多少對象接受消息,也不知道對象是否存在。
有時消息的接受着和發送或太遠(遠 是指不是具體的 是關係如控制器和視圖就是近可是Model離控制器就是遠)
3.3
1》接收者:找到通知中心
NSNotificationCenter,註冊要收聽的一個具體頻道addObserver
2>發送者:找到通知中心,建立通知對象(NSNotification)使用通知中心來發送這個消息(postNotification)
3》接受者 收到消息 處理消息(掉方法)
4》中止收聽 不須要收聽時,找到通知中新 註冊removeObserver
3.4 關鍵的類
NSNotificationCenter 是一個單例類,使用defaultCenter方法永遠返回同一個對象,以此保證中心對象只有一個
NSNotification通知類(封轉通知的內容等信息)
4 鍵盤通知
鍵盤彈起的通知名稱:
UIKeyboardWillShowNotification
鍵盤收起的通知名稱
UIKeyboardWillHideNotification