2014-02-10 30 views
0

定期向UIDynamicAnimator添加一個UIView,它有一些自己的行爲。但是,當我從它的超級視圖中移除UIView(當它脫離屏幕時),UIDynamicAnimator仍然將UIView的行爲保留在其「行爲」屬性中。在刪除UIView時處理UIDynamicBehaviors

我的問題是,究竟什麼是處理UIDynamicAnimator中的行爲的最佳方法?

我是否必須手動跟蹤與該UIView相關的所有行爲,並在從視圖層次結構中刪除UIView之前手動刪除它們?

回答

0

[myBehavior removeItem:item]如果item不是myBehavior部分不拋出異常,所以你可以做的是有一個通用的removeView方法,可以消除所有的行爲視圖那些可能涉及到它,像:

- (void) removeView: (UIView *) view{ 
    [_gravity removeItem: view]; 
    [_collisions removeItem:view]; 
    [_otherBehavior removeItem:view]; 
    //and et cetra for all of your behaviors 
    [self.view removeItem: view]; 
} 

無論何時需要刪除視圖,都可以調用它。即使假設該視圖不是_otherBehavior的一部分,該方法仍然會正確刪除該視圖。