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
– initWithItem:attachedToAnchor:
– initWithItem:attachedToItem:
– initWithItem:offsetFromCenter:attachedToAnchor:
- – initWithItem:offsetFromCenter:attachedToItem:offsetFromCenter:
配置吸附行为
-
anchorPoint
property -
attachedBehaviorType
property -
damping
property -
frequency
property -
length
property
属性
anchorPoint:
UIAttachmentBehaviorTypeAnchor类型的依赖行为的锚点,锚点与行为相关的动态动画的坐标系统有关。
attachedBehaviorType:
吸附行为的类型
damping:
描述吸附行为减弱的阻力大小
frequency:
吸附行为震荡的频率
items:
与吸附行为相连的动态项目,当吸附行为类型是
UIAttachmentBehaviorTypeItems时有2个元素,当吸附行为类型是UIAttachmentBehaviorTypeAnchor
时只有一个元素。
@property(nonatomic,
readonly, copy) NSArray *items
length:
吸附行为中的两个吸附点之间的距离,通常用这个属性来调整吸附的长度,可以创建吸附行为之后调用。系统基于你创建吸附行为的方法来自动初始化这个长度
方法举例
initWithItem:attachedToAnchor:
初始化连接动态项目的中心和锚点的吸附行为
- (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与锚点的吸附行为