iPhone - 可以让View Controller透视或从底部滑入视图?

时间:2011-08-31 20:04:25

标签: ios xcode animation view slide

我正在编写一个应用程序,我希望view / viewController从底部滑入。

我尝试过使用“presentModalViewController”方法。问题是我需要新的viewController是seethrough,无论如何都要这样做?

我也尝试过切换到一个视图,其背景是seethroug,而不是使用此代码的viewController:

[UIView beginAnimations:@"SlideInFromBottom" context:nil];
[UIView setAnimationDuration:0.2];
[UIView setAnimationDelegate:self];
[UIView setAnimationRepeatCount:0];
[UIView setAnimationRepeatAutoreverses:NO];

if (self.interfaceOrientation == UIInterfaceOrientationPortrait) {

    ToolbarView.frame = CGRectMake(0, 44, 320, 460);
    ToolbarView.frame = CGRectMake(0, 0, 320, 460);

} else if (self.interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {

    ToolbarView.frame = CGRectMake(0, 44, 320, 460);
    ToolbarView.frame = CGRectMake(0, 0, 320, 460);


} else if (self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft) {

    ToolbarView.frame = CGRectMake(0, 44, 480, 300);
    ToolbarView.frame = CGRectMake(0, 0, 480, 300);


} else if (self.interfaceOrientation == UIInterfaceOrientationLandscapeRight) {

    ToolbarView.frame = CGRectMake(0, 44, 480, 300);
    ToolbarView.frame = CGRectMake(0, 0, 480, 300);

} 

问题在于,如果从纵向切换到横向,它不会排列,并且在旋转设备后每次第一次切换视图时动画效果都很差,因为它需要排队。

所以任何建议都会受到赞赏:)

PS:我正在尝试加载的视图只包含工具栏。

1 个答案:

答案 0 :(得分:0)

如果你想制作自己的动画,你需要像这样设置:

ToolbarView.frame = START POSITION
[UIView beginAnimations: ...];
ToolbarView.frame = END POSITION
[UIView commitAnimations];

换句话说,“开始”查看视图并建立起始位置; “承诺”再次看起来并建立最终职位。

你不应该乱用interfaceOrientation; ToolbarView的方向将与其超级视图匹配,因此只需将其添加为顶视图控制器视图的子视图。

最后,您可能想要查看UIControl的inputView属性。基本上,您可以进行自定义控件,如果它成为第一响应者,iOS将负责从屏幕底部向上滑动inputView。 (如果你想走那条路,你将不得不做更多的研究,因为它超出了这个问题的范围。)