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

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

作者: 小子爱搞事 | 来源:发表于2017-02-09 11:28 被阅读33次

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

    之前使用的 window 是 keyWindow

    #define AGWindow    [[UIApplication sharedApplication] keyWindow]
    
    // 添加视图
    [AGWindow addSubview:self];
    
    正常显示:
    Paste_Image.png

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

    异常显示:
    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上,出现布局错误

          本文链接:https://www.haomeiwen.com/subject/pmkiittx.html