【问题标题】:Simple animation not working on iOS7简单的动画在 iOS7 上不起作用
【发布时间】:2015-06-08 13:43:55
【问题描述】:

我用一个按钮来触发下面的动画:

newPosition1=CGPointMake(200.0f + _btnAgregar.frame.size.width/2.0f, _btnAgregar.center.y);
    [UIView animateWithDuration:0.5f animations:^{
        _btnAgregar.center=newPosition1;
    }];

它在任何运行 iOS8 的设备上都可以正常工作,但在 iOS7 上运行时完全没有。

知道为什么吗?谢谢。

【问题讨论】:

  • 你是如何创建和引用你的UIButton的?
  • 在 .h: @property (weak, nonatomic) IBOutlet UIButton *btnAgregar;
  • 其实这是我从 NSLog(@"%@", _btnAgregar); : ; };层 = >
  • 不,这个视图没有任何约束。
  • 我得到相同的响应:; };层 = >

标签: objective-c animation ios7


【解决方案1】:

根据您的 cmets,您将获得有关此按钮的以下日志输出:

<UIButton: 0x7fded8c9df60; frame = (185 3; 25 25); 
opaque = NO; autoresize = RM+BM; tag = 4; 
animations = { position=<CABasicAnimation: 0x7fded8ce4eb0>; }; 
layer = <CALayer: 0x7fded8c98920>>

所以这个按钮已经在它的位置上被动画化了。在 iOS 7 中,当该属性已被动画化时尝试为该属性设置动画将导致动画取消。您需要在此代码运行之前跟踪为什么按钮会被动画化。

问题在 iOS 8 中没有发生的原因是动画的工作方式发生了变化 - 同一属性上的多个动画是相加的(请参阅 WWDC 2014 视频中有关此主题的视频)。

【讨论】:

  • 谢谢马特,我试试看。
  • 原因是写得不好。
  • 我现在在代码之前得到不同的响应: > 在代码之后: ; }; layer = > 但是还是不行=/
猜你喜欢
  • 1970-01-01
  • 2014-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多