呈现小于屏幕尺寸的视图控制器

Posted

技术标签:

【中文标题】呈现小于屏幕尺寸的视图控制器【英文标题】:Presenting view controller smaller than screen size 【发布时间】:2016-04-20 12:15:57 【问题描述】:

几天前我试图问这个问题,但发现自己很难清楚地解释自己,所以打开了这个更简单的问题。

我有一个视图控制器 A。 我点击某些东西来触发对 View Controller B 的 segue。

有什么方法可以让 B 的尺寸小于屏幕尺寸,这样 A 仍然可以在下方看到并与之交互?

谢谢。

【问题讨论】:

不展示ViewController B,为什么不添加一个带动画的视图呢?如果您想在导航栏顶部显示视图,也可以将视图添加到导航控制器。 Thx Chandan - VC B 是一个已经建立的、非常复杂的控制器,因此最好打开它而不是将其合并到 A 中 - 您的建议可能与下面是 Dheeraj,但我需要几分钟才能解决这个问题,因为这对我来说有点新。 【参考方案1】:

UIViewController 有一个名为

的属性
@property(nonatomic,assign) UIModalPresentationStyle modalPresentationStyle NS_AVAILABLE_ios(3_2);

您应该尝试其中一种。默认为全屏,但您有很多选择。另外,你有一个自定义的。您可以将属性设置为自定义并更改框架。

希望对你有帮助!!

【讨论】:

非常感谢 - 努力争取时间为这些建议构建一个小测试项目,但我会尽快着手进行。一切顺利。【参考方案2】:

在比实际视图控制器更小的视图中显示(这里是baseView

ViewControllerB * bvc = [self.storyboard instantiateViewControllerWithIdentifier:@"viewcontroller identifier"];
bvc.view.frame = self.baseView.bounds;
[self.baseView addSubview:bvc.view];
[self addChildViewController:bvc];
[bvc didMoveToParentViewController:self];

【讨论】:

谢谢 Dheeraj。我将尝试将其修改为 Swift 2.0,看看会发生什么。完成后会回复您。

以上是关于呈现小于屏幕尺寸的视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

尝试以编程方式创建尺寸小于屏幕的 iOS WKWebView

如何确定移动应用程序中可以合理呈现多少列? (屏幕尺寸/分辨率/方向)

处理屏幕尺寸的正确方法

根据各种屏幕尺寸自动布局集合视图

新屏幕尺寸的动画视图问题

当屏幕尺寸小于特定尺寸时隐藏 div 元素