UILabel揭示动画(不移动或调整文本大小)

问题描述:

我一直在为此奋斗了大约一天。基本上我想从底部到顶部揭示一个标签,而不用在任何时候移动文本或调整大小。揭示效应。就像在下面的图片enter image description hereUILabel揭示动画(不移动或调整文本大小)

我到目前为止所有的解决方案导致文本移动。我甚至尝试做一个缩放转换(将anchor设置为底部),但是这导致了在动画发生时调整大小的文本。我也尝试将标签放在视图中并调整视图的大小(并将autoresize子视图设置为NO并将子视图剪辑为YES),但仍然会导致其中的标签移动。

在Hello World顶部放置一个不透明的视图并向上滑动。如果您有上面的UI元素,请确保它们位于滑动元素上方。

+0

我在标签下有UI元素。所以不会工作。 –

您可以创建一个标签。然后创建一个视图并放在它上面。它会使标签隐藏起来。然后向上移动视图。

+0

这个标签下面会有东西,所以放在一切移动视图的顶部是行不通的。 –

如果恢复的方向是可接受的(从上到下显示),您可以为框架原点和框架大小设置动画。如果标签的尺寸小于文字,则下部将被切掉。听起来像是一个小妥协的最简单的解决方案。

有点晚了,但如果其他人正在寻找一个答案,你可以使用:

-(void)inverseResizeView: (UIView *)view width:(int)deltaWidth height:(int)deltaHeight { 
view.frame = CGRectMake(view.frame.origin.x - deltaWidth, view.frame.origin.y - deltaHeight, view.frame.size.width + deltaWidth, view.frame.size.height + deltaHeight); 
} 

使用方法如下为例:

[UIView animateWithDuration: 0.8 animations:^{ 

    [self inverseResizeView: text.container width: 0 height: text.container.height]; 

}]; 

要在做一个倒转动画一个看法。