只需将视图添加到超级视图可见框架之外的某个位置(您正在其上设置动画的视图),然后使用动画块更改其位置。它会向上滑动。
- (void)addView
{
// Obviously this won't compile with cut&paste... you have
// to supply the actual views.
UIView* myControlView = // assume this exists somewhere
UIView* myMainView = // assume this exists too
myControlView.frame = CGRectMake(0, 480, 320, 100); // use real numbers
[myMainView addSubview:myControlView];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
myControlView.frame = CGRectMake(0, 380, 320, 100);
[UIView commitAnimations];
}
还有很多其他方法可以做到这一点。例如,您可以在需要的地方设置一个视图集,然后将其从屏幕外转换为“隐藏”。当你想要它回来的时候,在动画块内用仿射变换再次变换它,它会向上滑动。这种方法对预先布置好的视图工作得更好,比如使用接口生成器,这样您就不必知道框架的位置,或者它们会在其他代码中发生变化。