在 iOS 8 中调整打开的模型视图的大小
Resizing an open model view in iOS 8
我有一个显示为表单 sheet 的 UIViewController,当用户 select 进行特定设置时,模式会扩展以显示更多数据(同样,如果他们 select 别的东西)。
在 iOS 7 及以下版本中,可以使用
调整模态视图的大小
[self.view.superview setBounds:CGRectMake(0, 0, 320, 480)];
在 iOS 8 中,我知道您可以使用 setPreferredContentSize
来设置弹出窗口的初始大小,但这不适用于调整当前显示的弹出窗口的大小。
所以我的问题是,如何在 iOS 8 中调整显示的弹出窗口的大小?
通过 b3ginneriOS 的提示,我解决了这个问题。
首先,我将模态视图控制器中的所有内容都移动到一个子视图中,并将所有调整大小的过渡应用于该子视图(将主视图保留为最大尺寸)。
仅对于 iOS 8,在当前上下文中使用 Presentation。
在prepareForSegue
if(IS_IOS8) {
[[segue destinationViewController] setModalPresentationStyle:UIModalPresentationOverCurrentContext];
}
并添加半透明背景:
[self.view setBackgroundColor:[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.45]];
通过一些调整使视图正确居中(取决于 iOS7 的超级视图调整大小和 iOS8 的子视图),一切正常。
我有一个显示为表单 sheet 的 UIViewController,当用户 select 进行特定设置时,模式会扩展以显示更多数据(同样,如果他们 select 别的东西)。
在 iOS 7 及以下版本中,可以使用
调整模态视图的大小[self.view.superview setBounds:CGRectMake(0, 0, 320, 480)];
在 iOS 8 中,我知道您可以使用 setPreferredContentSize
来设置弹出窗口的初始大小,但这不适用于调整当前显示的弹出窗口的大小。
所以我的问题是,如何在 iOS 8 中调整显示的弹出窗口的大小?
通过 b3ginneriOS 的提示,我解决了这个问题。
首先,我将模态视图控制器中的所有内容都移动到一个子视图中,并将所有调整大小的过渡应用于该子视图(将主视图保留为最大尺寸)。
仅对于 iOS 8,在当前上下文中使用 Presentation。
在prepareForSegue
if(IS_IOS8) {
[[segue destinationViewController] setModalPresentationStyle:UIModalPresentationOverCurrentContext];
}
并添加半透明背景:
[self.view setBackgroundColor:[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.45]];
通过一些调整使视图正确居中(取决于 iOS7 的超级视图调整大小和 iOS8 的子视图),一切正常。