我有一个UILabel想要动态变化大小。当尺寸改变时,我需要左下角保持静止,以便它始终直接出现在底部工具栏上方。我使用以下代码使标签增长:
[UIView animateWithDuration:kAnimationDuration delay:0.0 options:UIViewAnimationCurveEaseInOut
animations:^{
CGFloat lblHeight = 42.0f;
[label setFrame:CGRectMake(0.0,
CGRectGetMaxY(self.view.bounds) - kBottomBarHeight - lblHeight,
CGRectGetMaxX(self.view.bounds),
lblHeight)];
} completion:^(BOOL finished) { }];
为了使其缩小,我使用相同的逻辑,只是将lblHeight设置为17.0f。
视图正确增长,但当我尝试缩小它时,框架更改动画不会动画化。它会突然变成新的大小,然后动画化为新的原点/位置。我需要框架更改被动画化。有人看出我做错了什么吗?
frame
是一个完全可以动画化的属性;2)+animateWithDuration
是一个用于UIView的核心动画包装器;3)如果他要操作底层图层的属性,那么锚点才能起作用。 - CodaFi+ animateWithDuration
,他将失去动画效果。此外,他特别提到希望保留视图位置的一个角落,在使用 MakeScale 时,会从中心点缩小/放大。 - CodaFi