zoukankan      html  css  js  c++  java
  • UIdynamic系列认知

    1.刚上来就遇到的大坑

    按照前辈们的代码码上了一段重力效果,结果不管怎么折腾都没有任何效果,不由心塞。

    开始怀疑是不是模拟器不支持呀?是不是必须拖动到视图上的空间才可以呀?

    结果试了各种方法还是没效果,午睡醒来发现了大坑,原来是

    UIDynamicAnimator 要被定义为全局的变量,使他在视图的整个生命周期内都不被释放

    刚开始都是这样搞的

    UIDynamicAnimator  *animator =

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

    UILabel * label = [[UILable alloc]initWithFrame:CGRectMake(100, 0, 200, 40)];

    label.backgroundColor = [UIColor redColor];

    [self.view addSubview:label];

    UIGravityBehavior *gravity =

    [[UIGravityBehavior alloc] initWithItems:@[label]];

    [animator addBehavior:gravity];

    上面的代码并没有一点毛用。

    因为物理仿真器对象被定义为了局部变量,这样上面一段代码在执行完毕之后 物理仿真器 animator 就被销毁了,这样就没有办法来执行后续的物理效果啦!

    所以最好把物理仿真器对象定义为属性变量,使他在整个视图的生命周期中都有效果。

  • 相关阅读:
    Android studio 中国的垃圾问题解决
    实现一个简单的boot
    代理下载android4.4源代码
    《程序员在第一季度追姐姐的书》——提升自己的形象气质
    第46周四
    Spring单例与线程安全小结
    2014第46周二
    第46周一
    第45周日
    第45周六
  • 原文地址:https://www.cnblogs.com/danMing-love/p/7798705.html
Copyright © 2011-2022 走看看