当前位置 : 主页 > 手机开发 > ios >

ios – UILabel没有在UIView内部制作动画,使用自动布局

来源:互联网 收集:自由互联 发布时间:2021-06-11
我有一个非常简单的应用程序.它包含一个红色视图和一个绿色标签.还有一个运行动画的按钮.我通过更改宽度约束常量的值来为红色视图设置动画. [self.view layoutIfNeeded];[UIView animateWith
我有一个非常简单的应用程序.它包含一个红色视图和一个绿色标签.还有一个运行动画的按钮.我通过更改宽度约束常量的值来为红色视图设置动画.

[self.view layoutIfNeeded];
[UIView animateWithDuration:0.4 animations:^{
    self.widthConstraint.constant = width;
    [self.view layoutIfNeeded];
}];

红色视图按预期动画,但内部的绿色标签立即改变其宽度.我玩过不同的动画标志,尝试了几个技巧,但没有带来它的工作.

请找到the sources here.

TIA

好像我找到了问题的根源. UILabel的约束并不是一个麻烦.

如果用简单的UIView替换我项目中的UILabel,它将按预期平滑地动画.这是UILabel内容动画的问题.你可以达到正确的动画行为设置label.contentMode = UIViewContentModeCenter,但它看起来很难看.

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

请参阅有关UILabel动画here的更多详细信息.

网友评论