我正在使用UIDynamicAnimator,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];
}];
updateItemUsingCurrentState:
函数似乎对边界变化没有影响......我是对的吗?
答案 0 :(得分:0)
我通过将我的动画变量设置为nil并再次声明它和每个链接的动画行为来成功完成。
如果其他人有更好的方法,我仍然在听。感谢。
答案 1 :(得分:0)
我最终删除了动态动画师的所有行为,但没有取消分配并重新添加它们:
let behaviors = (self.dynamicAnimator.behaviors as NSArray).copy() as! [UIDynamicBehavior]
self.dynamicAnimator.removeAllBehaviors()
for behavior in behaviors {
self.dynamicAnimator.addBehavior(behavior)
}