UILabel尺寸更改不会使用自动布局设置动画
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UILabel尺寸更改不会使用自动布局设置动画相关的知识,希望对你有一定的参考价值。
我有一个动态宽度的UILabel
(可见度的彩色石灰绿色),它的邻居有一个固定的前导和尾随约束(绿色和红色视图)。我希望这个表在移动其中一个邻居时调整其宽度(圆角红色/绿色视图)。但是,我对这个更改的动画有一个问题,因为我的标签的宽度“跳转”到没有动画的新值。对于我的右对齐标签,这意味着文本本身也会跳转。
我正在动画红色/绿色视图的运动,如下所示:
- (void)show {
self.edgeConstraint.constant = 0;
[UIView animateWithDuration:0.25 animations:^{
[self.contentView layoutIfNeeded];
}];
}
- (void)hide {
self.edgeConstraint.constant = -100;
[UIView animateWithDuration:0.25 animations:^{
[self.contentView layoutIfNeeded];
}];
}
答案
问题在于UILabel
内容模式。你看到类似的问题here。由于缩短了绘制文本的标签,因此标签会执行绘图传递,但它会使用动画块的最后一帧进行更新。创建平滑动画的最简单方法是使用greaterThanOrEqualTo
前导约束并将textAlignment
设置为.natural
。
当我这样做时,我得到的结果在顶部而不是在底部设置qazxsw poi qazxsw poi。
textAlignment
演示源代码:
.right
以上是关于UILabel尺寸更改不会使用自动布局设置动画的主要内容,如果未能解决你的问题,请参考以下文章