你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS7中UIKit支持的動力行為之UIAttachmentBehavior

iOS7中UIKit支持的動力行為之UIAttachmentBehavior

編輯:IOS開發綜合

Inherits from UIDynamicBehavior : NSObject Conforms to NSObject (NSObject)
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類型的依賴行為的錨點,錨點與行為相關的動力動畫的坐標系統有關。 @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)item attachedToAnchor:(CGPoint)point
        參數:item是你要應用吸附行為的動力項,point是吸附行為的錨點,與跟行為相關的動態動畫所在在系統坐標有關。 返回:初始化的attachment behavior,如果初始化過程出錯將會返回nil。 該初始化方法的吸附行為的類型是UIAttachmentBehaviorTypeAnchor

        initWithItem:attachedToItem:

        初始化連接兩個動力項中心的吸附行為
        - (instancetype)initWithItem:(id)item1 attachedToItem:(id)item2
        參數:item1第一個被吸附行為連接的動力項,item2第二個被吸附行為連接的動力項 返回:初始化的attachment behavior,如果初始化過程出錯將會返回nil。 該初始化方法的吸附行為的類型是UIAttachmentBehaviorTypeItems

        initWithItem:offsetFromCenter:attachedToAnchor:

        初始化連接動力項中某一點和錨點的吸附行為
        - (instancetype)initWithItem:(id)item offsetFromCenter:(UIOffset)p1 attachedToAnchor:(CGPoint)point
        參數:item要應用吸附行為的動力項,p1相對於item中心的偏移,point是吸附行為的錨點,與跟行為相關的動力動畫所在在系統坐標有關。 返回:初始化的attachment behavior,如果初始化過程出錯將會返回nil。 該初始化方法的吸附行為的類型是UIAttachmentBehaviorTypeAnchor

        initWithItem:offsetFromCenter:attachedToItem:offsetFromCenter:

        初始化連接一個動力item中某一點和另一個動力item中某一點的吸附行為
        - (instancetype)initWithItem:(id)item1 offsetFromCenter:(UIOffset)p1 attachedToItem:(id)item2 offsetFromCenter:(UIOffset)p2
        參數:item1第一個被吸附行為連接的動力項,p1相對於item1中心的偏移,item2第二個被吸附行為連接的動力項,p2相對於item2中心的偏移 返回:返回:初始化的attachment behavior,如果初始化過程出錯將會返回nil。 這是為UIAttachmentBehavior類指定的初始化程序。
        常量

        UIAttachmentBehaviorType

        吸附行為的類型,說明吸附到的是什麼樣子的動力項。
        typedef enum {
           UIAttachmentBehaviorTypeItems,
           UIAttachmentBehaviorTypeAnchor
        } UIAttachmentBehaviorType;
        UIAttachmentBehaviorTypeItems:表示連接兩個item的吸附行為
        UIAttachmentBehaviorTypeAnchor:表示連接一個item與錨點的吸附行為



  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved