Ios UILabel不会在UIView内部设置动画,使用自动布局

Ios UILabel不会在UIView内部设置动画,使用自动布局,ios,animation,autolayout,Ios,Animation,Autolayout,我有一个非常简单的应用程序。它包含一个红色视图和一个绿色标签。还有一个按钮可以运行动画。我通过更改其宽度约束常量的值来设置红色视图的动画 [self.view layoutIfNeeded]; [UIView animateWithDuration:0.4 animations:^{ self.widthConstraint.constant = width; [self.view layoutIfNeeded]; }]; 红色视图按预期设置动画,但内部的绿色标签会立即更改其宽

我有一个非常简单的应用程序。它包含一个红色视图和一个绿色标签。还有一个按钮可以运行动画。我通过更改其宽度约束常量的值来设置红色视图的动画

[self.view layoutIfNeeded];
[UIView animateWithDuration:0.4 animations:^{
    self.widthConstraint.constant = width;
    [self.view layoutIfNeeded];
}];
红色视图按预期设置动画,但内部的绿色标签会立即更改其宽度。我玩了不同的动画旗帜,尝试了一些技巧,但没有带来工作

请找到


TIA

我已经看过你的项目了。我在设置编辑器中的约束方面没有太多经验,但我强烈建议您在遇到问题时尝试在代码中进行设置。就我个人而言,我会设置此红色视图宽度的约束动画,并使用视觉格式设置标签边距的约束。它类似于:
@“H:|[label]|”
并将此约束添加到红色视图中。这应该可以解决问题。

看来我已经找到了问题的根源。约束不是问题,
UILabel

如果将我的项目中的
UILabel
替换为simple
UIView
,它将按预期平滑地设置动画。这是一个
UILabel
内容动画的问题。您可以访问正确的动画行为集
label.contentMode=UIViewContentModeCenter
,但它看起来很难看

解决此问题的最佳方法-不要在动画期间尝试更改
UILabel
的大小。试着发明一些其他的行为。在本例中,我将
UILabel
的alpha更改为0,将x位置更改为大于容器视图的宽度

请查找有关
UILabel
动画制作的更多详细信息