1
我想从0到文本高度(UILabel)的高度进行动画处理。我正在使用自动布局,我不知道文本会有多高。我的方法是通过一个高度= 0约束设置为文本开始,和动画是这样的:动画到文本高度(自动布局)
//retrieves the height constrain of the clicked item
NSLayoutConstraint *heightContraint = [heightConstraints objectAtIndex:sender.tag];
//activates/deactivates the constraint
heightContraint.active = !heightContraint.active;
//animates
[UIView animateWithDuration:3 animations:^{
[self layoutIfNeeded];
}];
我的问题是,用这种方法,文字高度不动画,它的高度变化0立即到达新的高度。只有包含视图的位置/大小改变是动画的。如何在不知道文本高度的情况下对文本高度变化进行动画处理?
尝试调用layoutIfNeeded为内部块该特定视图 [weakSelf.sampleView layoutIfNeeded]; – erenkabakci 2015-03-19 10:00:12
当您为约束设置一些确切的值时,动画是否会发生?只是为了区分度量和动画问题。 – VChemezov 2015-03-19 10:00:59
@Akeara我试着调用'[heightContraint.firstItem layoutIfNeeded];'而不是,但我得到了同样的结果。我认为这个问题与这样一个事实有关,它动画一个BOOL'heightContraint.active',但它不能真正做到这一点,因为它的值只有YES和NO(类似于动画isHidden属性而不是使用不透明度) – Daniel 2015-03-19 10:06:13