【问题标题】:How to stop something with a UIGravityBehavior?如何用 UIGravityBehavior 停止某些事情?
【发布时间】:2013-12-04 22:05:24
【问题描述】:

我有一些使用 UIDynamicAnimation 的 UIView,特别是 UIGravityBehavior。我需要知道如何让它们随时停止和启动。

我一直在尝试手动设置行为属性的各种组合,例如将重力设置为 0、0,或者分别将幅度和矢量设置为 0,甚至将所有这些加上角度设置为 0一下子,一切都在继续。

我可以将它们移动到不同的位置,但它们只是保持以前的动力并继续移动。

我能想到的最后一件事是从行为中完全删除视图,但我需要在很多不同的时间停止和启动,这看起来非常笨拙。这是唯一的方法吗?

【问题讨论】:

    标签: ios uikit-dynamics uidynamicbehavior


    【解决方案1】:

    方法:

    [aView removeMotionEffect:effect];
    

    已优化,因此您不必害怕执行它。 我的猜测是,与他们的矢量和重力“玩耍”,同时管理大量视图将比仅仅消除他们的行为要困难得多。

    你可以使用这个sn-p:

    - (void)removeMotionEffectsFromViews:(NSArray *)views
    {
         for (id obj in views) {
    
            if ([obj isKindOfClass:[UIView class]]) {
    
                UIView *aView = (UIView *)obj;
    
                for (UIMotionEffect *effect in [aView motionEffects]) {
                    [aView removeMotionEffect:effect];
                }
            }
        }
    
        [self.animator /*UIDynamicAnimator*/ removeAllBehaviors];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-01
      • 2020-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多