0

从一个视图移动到另一个视图时如何添加过渡效果?

例如,当单击按钮调用 addSubView 时,会加载一个新视图。这样做时我想要像“滑入”这样的过渡效果/动画?另外,返回原始视图时如何添加“滑出”过渡?

请帮忙

4

1 回答 1

1

这可以通过简单的UIView动画来完成。这里有几个例子。

这将使 alpha 从 0.0 到 1.0 产生淡入效果:

UIView *secondView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
[secondView setAlpha:0.0];
[self.view addSubview:secondView];

[UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
    [secondView setAlpha:1.0];
}completion:^(BOOL done){
    //Some completion handler!
}];

然后您可以深入CGAffineTransforms研究以处理移动视图。此示例将从屏幕的左下角移入新视图。

UIView *secondView = [[UIView alloc] initWithFrame:CGRectMake(320, 480, 320, 480)];
[self.view addSubview:secondView];

[UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
    [secondView setTransform:CGAffineTransformMakeTranslation(-320, -480)];
}completion:^(BOOL done){
    //Some completion handler!
}];

使用这样的块,您几乎可以制作任何您想要的简单到中间动画。

于 2012-08-28T20:21:15.217 回答