【问题标题】:UIWindow overlay not visibleUIWindow 覆盖不可见
【发布时间】:2017-01-01 23:47:32
【问题描述】:

在 IOS 应用程序的关键 UIWindow 中添加一个覆盖窗口。 但是,新的覆盖 UIWindow 似乎在任何地方都不可见。

似乎添加成功了,基于lldb:

(lldb) po UIApplication.shared.windows
▿ 2 elements
  - 0 : <UIWindow: 0x7fdfd3d0aec0; frame = (0 0; 375 667); gestureRecognizers = <NSArray: 0x60800004d680>; layer = <UIWindowLayer: 0x608000220980>>
  - 1 : <UIWindow: 0x7fdfd3c0d010; frame = (0 0; 375 667); gestureRecognizers = <NSArray: 0x60000004c9c0>; layer = <UIWindowLayer: 0x6000002216e0>>

在调试中,

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    let vc = UIViewController()
    vc.view.backgroundColor = UIColor.blue

    let window = UIWindow()
    window.frame = self.view.bounds
    window.backgroundColor = UIColor.blue
    window.windowLevel = UIWindowLevelStatusBar
    window.rootViewController = vc
    window.isHidden = false
}

不胜感激任何形式的提示/帮助 谢谢

【问题讨论】:

    标签: ios uiwindow


    【解决方案1】:

    在您的 viewDidLoad() 方法退出后,您的窗口将被释放。您需要强烈保留您的第二个窗口。

    【讨论】:

    • 感谢 Leo,明确保留窗口解决了这个问题。希望我能在文档中找到这个要求。
    • 是的,Apple 缺少有关窗口相关主题的文档。确保在bugreport.apple.com 上打开文档的增强请求
    猜你喜欢
    • 1970-01-01
    • 2017-11-19
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多