我正在使用[UIView animateWithDuration:animations:]
隐藏UIButton
,将其frame.size.height
更改为0
。但是,一旦动画开始,圆角矩形和背景会立即消失,而按钮文本会剪切视图的边界。
我正在使用的代码相当简单:
CGRect newFrame = button.frame;
newFrame.size.height = 0;
[UIView animateWithDuration:2.0 animations:^{
button.frame = newFrame;
}];
我注意到这只发生在我将高度设置为0时。似乎动画开始时,按钮只是在最终状态下重绘一次。通过将此静态图像从原始大小缩放到最终大小来执行动画。由于无法看到高度为0的按钮,导致整个圆形消失(按钮上的文字除外,因为它是不同的视图)。
必须有更好的方法来做到这一点,所以动画看起来并不奇怪。如何让动画按照我想要的方式运行?
答案 0 :(得分:0)
如果你做这样的事情会更好吗?
CGRect newFrame = button.frame;
newFrame.size.height = 1;
[UIView animateWithDuration:2.0
animations:^{button.frame = newFrame;}
completion:^{button.hidden = YES;}];
如果您使用的是系统圆角矩形按钮,也可能是因为他们不喜欢在某个级别以下调整大小,使用自定义按钮可能会更好。
答案 1 :(得分:0)
为什么不在动画中将按钮的alpha值设置为0?或者你必须为它的高度设置动画吗?
答案 2 :(得分:0)
拍摄按钮的图像快照,并执行仿射变换动画向上旋转该视图,或更改y比例。