我正在使用以下代码来设置带有动画的三个标签的帧。它在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;

}];

最佳答案

我遇到了一个非常类似的问题,因此我改用了自动布局。

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

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

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

07-27 13:39