如何显示自定义模态 UIView?

Posted

技术标签:

【中文标题】如何显示自定义模态 UIView?【英文标题】:How to display custom modal UIView? 【发布时间】:2011-04-19 01:43:56 【问题描述】:

我正在尝试在所有其他视图之上显示一个自定义 UIView,使其在纵向和横向中都能正常工作。我目前这样做的方式是创建一个透明的黑色视图,它基本上使整个屏幕变暗,然后在其上添加我的自定义视图。一切都很好,除了它在风景中不会定位自己的属性。我认为这是由于我添加视图的方式:

UIWindow* mainWindow = (((MyAppDelegate*)[UIApplication sharedApplication].delegate).window);   
[mainWindow addSubview:self];

似乎无论实际设备方向如何,mainWindow 始终处于纵向状态,因此即使我处于横向状态,我的自定义视图也会像处于纵向模式一样显示颠倒。我的主视图控制器是一个导航控制器,它在它上面添加了几个自定义视图,所以我真的不想通过我的视图一直向下传递对它的引用,这样我就可以在上面使用它。

我的问题最后是我如何正确地将我的自定义视图添加到主窗口,以便它在横向和纵向中正确定位,并且仍然显示在整个屏幕上。

谢谢

【问题讨论】:

iphone还是ipad?哪个控制器拥有您要添加到 mainWindow 的“自我”?为什么不能让主 viewController 推送模态视图? 同意;最简单的方法是从根视图控制器调用 presentModalViewController。 【参考方案1】:

创建并生成具有更高 zorder 的新 UIWindow,并向其添加视图控制器。视图控制器具有处理视图旋转的内置逻辑。

【讨论】:

以上是关于如何显示自定义模态 UIView?的主要内容,如果未能解决你的问题,请参考以下文章

自定义 UIView 类 - Swift

C# WinForm自定义进度条

如何实现可以显示图像或作为输入属性提供的自定义 UIView 的 CollectionViewCell?

当 UITableView 枯竭时需要帮助显示自定义 UIView

如何创建自定义 UIView?

SwiftUI 中的自定义模态转换