从一个视图移动到另一个视图时的过渡效果

时间:2012-08-28 20:05:10

标签: ios uiview transition

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

e.g。当单击该按钮调用addSubView时,将加载一个新视图。这样做时,我想要一个过渡效果/动画,如'幻灯片'? 另外,如何在返回原始视图时添加“滑出”转换?

请帮忙

1 个答案:

答案 0 :(得分: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!
}];

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