Ios 视图边界更改时发生碰撞

Ios 视图边界更改时发生碰撞,ios,objective-c,uikit-dynamics,Ios,Objective C,Uikit Dynamics,我正在使用UIDynamicMator、UICollisionBehavior和几个移动UIImageView。 当一切正常时,看起来是这样的。画面在屏幕上移动,没有重叠 但是,在我更改了某些视图的边界后,碰撞并没有按应有的方式更新,它给了我以下信息: 碰撞不再像预期的那样起作用:视图被叠加 我正在使用以下代码更新边界: [UIView animateWithDuration:2 delay:0 opti

我正在使用UIDynamicMator、UICollisionBehavior和几个移动UIImageView。 当一切正常时,看起来是这样的。画面在屏幕上移动,没有重叠

但是,在我更改了某些视图的边界后,碰撞并没有按应有的方式更新,它给了我以下信息:

碰撞不再像预期的那样起作用:视图被叠加

我正在使用以下代码更新边界:

    [UIView animateWithDuration:2
                      delay:0
                    options:UIViewAnimationOptionCurveEaseInOut
                 animations:^{
                     CGRect newBounds = imageView.bounds;
                     newBounds.size.height = 500;
                     newBounds.size.width = 500;
                     imageView.bounds = newBounds;
                 }
                 completion:^(BOOL finished) {
                     [animator updateItemUsingCurrentState:imageView];
                 }];

updateTimeSingCurrentState:
函数似乎对边界更改没有影响。。。我说得对吗?

我成功地将animator变量设置为nil,并再次声明它和每个链接的动画行为。


如果其他人有更好的方法,我仍在倾听。谢谢。

我最终从dynamic animator中删除了所有行为,而没有取消分配并重新添加:

        let behaviors = (self.dynamicAnimator.behaviors as NSArray).copy() as! [UIDynamicBehavior]
        self.dynamicAnimator.removeAllBehaviors()
        for behavior in behaviors {
            self.dynamicAnimator.addBehavior(behavior)
        }

我想我已经试过了,但没有成功。。。我会尽快再试并给你反馈。谢谢