【问题收集】添加视图到window上,出现布局错误

项目中需要做很多的提示框,选择框,这些都是添加 window 上的。

之前使用的 window 是 keyWindow

#define AGWindow    [[UIApplication sharedApplication] keyWindow]

// 添加视图
[AGWindow addSubview:self];
正常显示:
【问题收集】添加视图到window上,出现布局错误_第1张图片
Paste_Image.png

在开发中,后来出现了添加在 window 上的控件位置出现错误的问题

异常显示:
【问题收集】添加视图到window上,出现布局错误_第2张图片
Paste_Image.png

视图不能够正常显示

项目中出现问题的原因

在项目中,有添加一个 topWindow ,设置的 frame 正好是上面错误显示时黑色视图部分,说明获取到的 keyWindow 是我们自己添加的 topWindow,视图被添加到了 topWindow 上面,因此出现错误

处理:

获取 AppDelegate 的 window 来添加视图

#define AGWindow     [[UIApplication sharedApplication].delegate window]

注意:

keyWindow 说明:

查找应用程序的主窗口对象。一般情况就是UIWindow。当然一个应用程序可以有多个window,键盘是一个window,[[UIApplication sharedApplication] keyWindow]就是查找当前应用程序的主window

如果有实现自己的 customWindow,通过 [[UIApplication sharedApplication] keyWindow] 方法获取的 window 在默写情况下可能是你的 customWindow,需要特别注意

你可能感兴趣的:(【问题收集】添加视图到window上,出现布局错误)