iPhone - 可以使 ViewController 透明或使视图从底部滑入吗?

Posted

技术标签:

【中文标题】iPhone - 可以使 ViewController 透明或使视图从底部滑入吗?【英文标题】:iPhone - Possible to make ViewController seethrough or make a view slide in from bottom? 【发布时间】:2011-08-31 20:04:24 【问题描述】:

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

我尝试过使用“presentModalViewController”方法。问题是我需要新的 viewController 是透明的,有什么办法吗?

我也尝试过使用以下代码切换到一个背景是沸腾的视图,而不是 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】:

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

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

换句话说,“开始”查看视图并确定起始位置; "commit" 再次查找并确定最终位置。

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

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

【讨论】:

使用你的代码仍然给我同样的问题......当我旋转我的设备时,工具栏在屏幕之外 您应该启动一个新的一次性项目来隔离此代码。首先,让视图以纵向模式从底部向上滑动。然后,看看它是否可以旋转。如果您遇到问题,发布代码并寻求帮助会更容易。事实上,很难判断可能出了什么问题。

以上是关于iPhone - 可以使 ViewController 透明或使视图从底部滑入吗?的主要内容,如果未能解决你的问题,请参考以下文章

swift 中,viewcontroll如果跳转到tabBar页面,我是有一个返回首页的按钮,首页就是登录页面之的页面

如何将大量文本从 webview 发送到 objc?

当 touchUpInside Back 按钮带有 [self.view removeFromSuperview] 时,上一个视图无响应

在后台线程上创建 UIViewController 可以吗?

如何设置滚动视图委托? [关闭]

iOS之程序间通讯