最顶层视图 1.0.0

TopmostView 1.0.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2017年11月

HarrisonXi 维护。



  • HarrisonXi

TopmostView

为 UIWindow 获取最顶层视图。最顶层视图可以与设备正确旋转。测试项目包含一个简单的 toast 实现。支持 iOS 7-11。

获取应用程序窗口的最顶层视图

// The application window is [UIApplicationDelegate window].
[TopmostView viewForApplicationWindow]

获取键盘窗口的最顶层视图

[TopmostView viewForKeyboardWindow]

获取覆盖在状态条之上的新窗口的最顶层视图

[TopmostView viewForStatusBarWindow]

获取覆盖在 Alert 弹窗之上的新窗口的最顶层视图

// It is for iOS 7/8, UIAlertView cteate a new window which level = UIWindowLevelAlert.
// For iOS >= 9, UIAlertController does not create a new window.
[TopmostView viewForAlertWindow]

获取指定窗口的最顶层视图

[TopmostView viewForWindow:window]

中文介绍

获得 UIWindow 里最顶层的 view。这个最顶层的 view 可以随着设备正常的旋转。另外测试工程里包含一个简单的 toast 实现。支持 iOS 7-11。

获得应用程序 window 里最顶层的 view:

// 应用程序 window 的值是 [UIApplicationDelegate window]。
[TopmostView viewForApplicationWindow]

获得键盘 window 里最顶层的 view:

[TopmostView viewForKeyboardWindow]

获得一个覆盖在状态条之上的新 window 里最顶层的 view:

[TopmostView viewForStatusBarWindow]

获得一个覆盖在 Alert 弹窗之上的新 window 里最顶层的 view:

// 这是用在 iOS 7/8 上的,UIAlertView 会创建一个 level 为 UIWindowLevelAlert 的 window。
// 在 iOS >= 9 的设备上,UIAlertController 是不会创建新 window 的。
[TopmostView viewForAlertWindow]

获得指定 window 里最顶层的 view:

[TopmostView viewForWindow:window]

实现细节逻辑相关blog:iOS系统的键盘windowiOS系统window的旋转及自定义window的问题