如果项目的中心位于参考视图之外,则UIGravityBehavior和UICollisionBehavior不起作用

时间:2016-04-11 12:26:56

标签: ios objective-c animation uikit-dynamics

编辑:我能够通过设置自定义边界来解决基于this主题的问题,但是我仍然想知道为什么不查看该视图如果其中心位于参考视图之外,则会掉落。

如何让视图进入另一个视图,但是停在该视图的底部?

我注意到,如果子视图的中心(要动画的视图)在超视图(参考视图)之外,则视图不会掉下来。

我有一个界限{0,0,320,556}的超级视图。我有另一个视图,添加为子视图,大小为{320,556}。

我需要让子视图从{0,-456,320,556}下降到{0,0,320,556}(基本上只有一小部分(如100点)可见,并且它必须一直下降以填补超级视图。

这里是初始状态的说明(两个视图应该具有相同的大小)

enter image description here

这是动画代码:

self.dynamicAnimator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];

UIGravityBehavior *gravity = [[UIGravityBehavior alloc] initWithItems:@[self.subView]];
[self.dynamicAnimator addBehavior:gravity];

UICollisionBehavior *collision = [[UICollisionBehavior alloc] initWithItems:@[subView]];
collision.translatesReferenceBoundsIntoBoundary = YES;
[self.dynamicAnimator addBehavior:collision];

0 个答案:

没有答案