animatewithduration在ios 8中不起作用

时间:2014-11-11 13:14:31

标签: ios ios7 ios8 uiviewanimation

我使用以下代码设置带动画的三个标签的帧。它在ios 7中完美运行,但在ios 8中似乎没有发生动画。

请帮我解决这个问题。

int total = avgAwake+avgLight+avgSound;
[UIView animateWithDuration:1.0 animations:^{

    CGRect newFrame = lblSound.frame;
    newFrame.size.width = (avgSound*250)/total;
    lblSound.frame   = newFrame;

    newFrame.size.width += (avgLight*250)/total;
    lblLight.frame   = newFrame;

    newFrame.size.width += (avgAwake*250)/total;
    lblAwake.frame   = newFrame;

}];

1 个答案:

答案 0 :(得分:0)

我有一个相当类似的问题所以我切换到autolayout。

对于此解决方案,您必须定义新约束,然后强制更新约束。动画执行布局更改:

//define the new constrains for "theView" here
.....

[theView setNeedsUpdateConstraints];
[UIView animateWithDuration:1.0f animations:^{
    [theView layoutIfNeeded];
}];