我正在编写一个应用程序,我希望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:我正在尝试加载的视图只包含工具栏。
答案 0 :(得分:0)
如果你想制作自己的动画,你需要像这样设置:
ToolbarView.frame = START POSITION
[UIView beginAnimations: ...];
ToolbarView.frame = END POSITION
[UIView commitAnimations];
换句话说,“开始”查看视图并建立起始位置; “承诺”再次看起来并建立最终职位。
你不应该乱用interfaceOrientation; ToolbarView的方向将与其超级视图匹配,因此只需将其添加为顶视图控制器视图的子视图。
最后,您可能想要查看UIControl的inputView
属性。基本上,您可以进行自定义控件,如果它成为第一响应者,iOS将负责从屏幕底部向上滑动inputView。 (如果你想走那条路,你将不得不做更多的研究,因为它超出了这个问题的范围。)