回顾:
1. Core Animation
CAlayer
2. UKit Dynamic
今天:
1. 动力特效
1.1 UISnapBehavior
闪烁特效
效果:视图移动到新的位置后,晃动以下
1.2 UIPushBehavior
推力特效
效果:模拟有方向的力或瞬间的力
特别之处:push是需要激活的,否则不起作用,只要设置行为的active=YES
2. 通知
2.1 是什么?
是一种 观察者模式的具体体现
观察者模式:一个对象(A)想知道另一个对象(B)的状态是否发生了改变,A对象随B对象状态的改变二改变的过程,可以用该车的过程来控制,这种两个对象保持状态改变的一致的模式,叫做观察者模式。
通知:是实现两个对象之间,在不知道彼此存在的情况下, 保持状态改变的一致性的一种实现方法
2.2 实现原理
在A和B对象之间存在一个公共的平台,叫通知中心,B对象要在中心中注册自己特有的通知,A对象要在中心中添加想要捕获的通知,这样,有通知中心纪录两个对象的存在,当B对象发出通知时,就会由中心将这个通知转交给A对象中,从而实现A和B变化的一致
特点:此种观察者模式是公开的,通知没有具体的针对某个对象的限制,是公开形式的广播,只要添加对该通知的关注,那么中心在收到具体的通知后,会给所有的关注的对象转发这个通知
2.3 核心类
NSNotificationCenter 通知中心
NSNotification 通知
2.4 使用步骤:
1)发送者:
找到通知中心,创建通知对象,发送。
2)接收者:
找到通知中心,注册要收听的具体的通知
3)当不需要收听消息时,接收者要找到通知中心,取消掉曾经注册过的通知。
中心是单例的,整个应用程序运行期间,只有一个通知中心的对象存在,有系统随程序的启动而创建,有系统随程序的结束而销毁。
2.5 常用的系统通知
键盘的弹起和收起时,系统会自动发出通知
在Notification中userInfo里面包含的key值如下
UIKeyboardAnimationCurveUserInfoKey
UIKeyboardAnimationDurationUserInfoKey
UIKeyboardBoundsUserInfoKey
UIKeyboardCenterBeginUserInfoKey
UIKeyboardCenterEndUserInfoKey
UIKeyboardFrameBeginUserInfoKey
UIKeyboardFrameChangedByUserInteraction
UIKeyboardFrameEndUserInfoKey
3. 搜索框
实现的理念:参考图