iOS7中UIKit支持的动力行为之UIAttachmentBehavior


Inherits from
Conforms to
Framework
/System/Library/Frameworks/ UIKit.framework
Availability
Available in iOS 7.0 and later.
Declared in
UIAttachmentBehavior.h
概述
吸附行为规定了两种动力item之间或者一个动力item与一个锚点之间的动态连接,默认情况下,两个item之间的吸附点是他们的中点,不过这个是可以设置的。
动力item可以是任何符合UIDynamicItem协议的iOS对象或者自定义对象,UIView和UICollectionViewLayoutAttributes类在iOS7.0才开始实现这个协议。你可以用一个自定义对象作为 动力item,这个 动力item能够对旋转或位置的改变作出反应,这些都是由一个 动力动画制作者(UIDynamicAnimator类的实例)来计算的。

当一个 动力item移动的时候,通过跟踪手势或其他输入方式,任何被吸附的 动力item都要移动。如果可能,还可以给这些被吸附的 动力item设置另外的 动力参数和边界。你可以使用length、damping和frequency属性设置吸附行为。

若要实现 动力item的吸附行为,要执行以下两个步骤:
1.用一个或者两个item初始化吸附行为, 初始化方法是initWithItem:...
2.通过使用addBehavior:method将它添加到动画中去
吸附行为还与坐标系统有关,你可以和行为一起用的 动力items的类型,取决于你怎么初始化相关的动画。

你也能在自定义的复合行为中包含吸附行为,这个复合行为要以UIDynamicBehavior对象开始,用addChildBehavior:method添加吸附行为。如果你想吸附行为在每一步 动力动画上都很流畅的话,就要实现继承的action方法。

方法

初始化和管理吸附行为

参数:items

配置吸附行为
属性

anchorPoint:
UIAttachmentBehaviorTypeAnchor类型的依赖行为的锚点, 锚点与行为相关的动力动画的坐标系统有关。
@property(readwrite, nonatomic)  CGPoint  anchorPoint

attachedBehaviorType:
吸附行为的类型
@property(readonly, nonatomic)  UIAttachmentBehaviorType  attachedBehaviorType
damping:
描述吸附行为减弱的阻力大小
@property(readwrite, nonatomic)  CGFloat  damping

frequency:
吸附行为震荡的频率
@property(readwrite, nonatomic)  CGFloat  frequency

items:
与吸附行为相连的动态项目,当吸附行为类型是UIAttachmentBehaviorTypeItems时有2个元素,当吸附行为类型是UIAttachmentBehaviorTypeAnchor时只有一个元素
@property(nonatomic, readonly, copy) NSArray *items

length:
吸附行为中的两个吸附点之间的距离,通常用这个属性来调整吸附的长度,可以创建吸附行为之后调用。系统基于你创建吸附行为的方法来自动初始化这个长度
@property(readwrite, nonatomic)  CGFloat  length


方法举例

initWithItem:attachedToAnchor:
初始化连接动力item的中心和锚点的吸附行为
- (instancetype)initWithItem:(id<UIDynamicItem>)item attachedToAnchor:(CGPoint)point
参数:item是你要应用吸附行为的动力项,point是吸附行为的锚点,与跟行为相关的动态动画所在在系统坐标有关。
返回:初始化的attachment behavior,如果初始化过程出错将会返回nil。
该初始化方法的吸附行为的类型是 UIAttachmentBehaviorTypeAnchor

initWithItem:attachedToItem:

初始化 连接两个动力项中心的 吸附行为
- (instancetype)initWithItem:(id<UIDynamicItem>)item1 attachedToItem:(id<UIDynamicItem>)item2
参数:item1第一个被吸附行为连接的动力,item2第二个被吸附行为连接的动力
返回:初始化的attachment behavior,如果初始化过程出错将会返回nil。
该初始化方法的吸附行为的类型是UIAttachmentBehaviorTypeItems

initWithItem:offsetFromCenter:attachedToAnchor:

初始化 连接动力中某一点和锚点的 吸附行为
- (instancetype)initWithItem:(id<UIDynamicItem>)item offsetFromCenter:(UIOffset)p1 attachedToAnchor:(CGPoint)point
参数:item要应用吸附行为的动力,p1相对于item中心的偏移,point 是吸附行为的锚点,与跟行为相关的动力动画所在在系统坐标有关。
返回: 初始化的 attachment behavior,如果初始化过程出错将会返回nil。
该初始化方法的吸附行为的类型是UIAttachmentBehaviorTypeAnchor

initWithItem:offsetFromCenter:attachedToItem:offsetFromCenter:

初始化连接一个动力item中某一点和另一个动力item中某一点吸附行为
- (instancetype)initWithItem:(id<UIDynamicItem>)item1 offsetFromCenter:(UIOffset)p1 attachedToItem:(id<UIDynamicItem>)item2 offsetFromCenter:(UIOffset)p2
参数:item1第一个被吸附行为连接的动力p1相对于item1中心的偏移,item2第二个被吸附行为连接的动力p2相对于item2中心的偏移
返回:返回:初始化的attachment behavior,如果初始化过程出错将会返回nil。
这是为UIAttachmentBehavior类指定的初始化程序。

常量

UIAttachmentBehaviorType

吸附行为的类型,说明吸附到的是什么样子的 动力
typedef enum {
   UIAttachmentBehaviorTypeItems,
   UIAttachmentBehaviorTypeAnchor
} UIAttachmentBehaviorType;
UIAttachmentBehaviorTypeItems:表示连接两个item的吸附行为
UIAttachmentBehaviorTypeAnchor:表示连接一个item与锚点的吸附行为



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值