Cocoa touch 如何设置对UIButton';没有图像扭曲的高度?

Cocoa touch 如何设置对UIButton';没有图像扭曲的高度?,cocoa-touch,uiviewanimation,Cocoa Touch,Uiviewanimation,我正在使用[UIView animateWithDuration:animations:通过将ui按钮的frame.size.height更改为0来隐藏它。但是,动画一开始,圆角矩形和背景就会立即消失,而按钮文本会从视图的边界上剪裁下来 我使用的代码非常简单: CGRect newFrame = button.frame; newFrame.size.height = 0; [UIView animateWithDuration:2.0 animations:^{ button.fram

我正在使用
[UIView animateWithDuration:animations:
通过将
ui按钮的
frame.size.height
更改为
0
来隐藏它。但是,动画一开始,圆角矩形和背景就会立即消失,而按钮文本会从视图的边界上剪裁下来

我使用的代码非常简单:

CGRect newFrame = button.frame;
newFrame.size.height = 0;
[UIView animateWithDuration:2.0 animations:^{
    button.frame = newFrame;
}];
我注意到只有当我将高度设置为0时才会发生这种情况。当动画开始时,按钮在其最终状态下只需重新绘制一次。通过将此静态图像从原始大小缩放到最终大小来执行动画。由于无法看到高度为0的按钮,因此会导致整个roundrect消失(按钮上的文本除外,因为它是不同的视图)


一定有更好的方法来实现这一点,这样动画看起来就不会那么奇怪了。如何使动画按我所希望的方式运行?

如果您这样做,效果会更好吗

CGRect newFrame = button.frame;
newFrame.size.height = 1;

[UIView animateWithDuration:2.0 
                 animations:^{button.frame = newFrame;} 
                 completion:^{button.hidden = YES;}];

如果您使用的是系统圆角矩形按钮,也可能是因为他们不喜欢将大小调整到某个级别以下,使用自定义按钮可能会更好。

为什么不在动画中将按钮的alpha值设置为0?或者,您必须为其高度设置动画吗?

拍摄按钮的图像快照,并执行仿射变换动画,向上旋转该视图,或更改y比例。

在我的应用程序中,按钮显示在UITableView标题中,我希望按钮下方的内容在其消失时向上滑动。