IOS UIView弹跳动画

标签 ios physics-engine uidynamicanimator

我有一个 UIVIew (容器)和另一个 UIView (框)框 View 位于 ContainerView 内.当一个 UIButton按下我希望框 View 从屏幕底部下拉,并在左侧 10px 处反弹;然后一旦弹跳停止,我仍然希望该框显示 10px。这是来自另一个 question 的一些示例代码:

UIDynamicAnimator *animator = [[UIDynamicAnimator alloc] initWithReferenceView:self]; //self is the container

UIGravityBehavior* gravityBehavior = [[UIGravityBehavior alloc] initWithItems:@[box]];
[animator addBehavior:gravityBehavior];

UICollisionBehavior* collisionBehavior = [[UICollisionBehavior alloc] initWithItems:@[reportBar.bar]];
collisionBehavior.translatesReferenceBoundsIntoBoundary = YES;
[animator addBehavior:collisionBehavior];

UIDynamicItemBehavior *elasticityBehavior =
[[UIDynamicItemBehavior alloc] initWithItems:@[box]];
elasticityBehavior.elasticity = 0.7f;
[animator addBehavior:elasticityBehavior];

代码在应该运行的时候运行,但盒子没有掉下来。

example of layout

编辑1:
  • self 指的是容器 UIView
  • 我也尝试为 currentViewController.view 更改 self ,没有变化。

  • 编辑2:
  • 所有这些代码都在容器 View 实现文件中。
  • 最佳答案

    尝试制作动画师属性,

    @property UIDynamicAnimator *animator;
    

    然后是你的代码,
    _animator = [[UIDynamicAnimator alloc] initWithReferenceView:self];
    
     ...
    

    关于IOS UIView弹跳动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23903054/

    相关文章:

    IOS UIDynamicAnimator masksToBounds 不会将碰撞作为边界

    ios - UIDynamicAnimator View 从引用边界之外进入

    iphone - 防止动态物体穿过花栗鼠中的静态物体?

    python - 是什么导致这些物体与 pymunk 一起飞向左侧?

    swift - UIGravityBehavior 在移动项目后不起作用

    ios - 是否有讨论 ALAsset 和 ALAssetLibrary 的 WWDC session 视频?

    ios - NSNotificationCenter 事件是同步接收还是异步接收?

    ios - TeenSafe iOS 应用程序如何访问短信?

    javascript - 我们如何在 Javascript 中捕获移动设备 "Next"按钮按键

    c++ - 使用 ReactPhysics3D 在 n 体模拟中未检测到碰撞