在app中新建一个uiwindow

通常用到的是keywindow 外, 或者将新window添加到keywindow中, 这里展示的是另外一种新的创建window的方式, 不废话, 直接上代码

import UIKit

 

class testViewController: UIViewController {

 

    private var win: UIWindow!

   

    override func viewDidLoad() {

        super.viewDidLoad()

        view.backgroundColor = .yellow

        let btn = UIButton(frame: CGRect(x: 0, y: 300, width: 40, height: 40))

        view.addSubview(btn)

        btn.backgroundColor = .red

        btn.addTarget(self, action: #selector(test), for: .touchUpInside)

        let blueView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))

        blueView.backgroundColor = .blue

 

        win = UIWindow(frame: CGRect(x: 0, y: 0, width: 200, height: 200))

        win.windowLevel = UIWindow.Level.alert + 1 //windowLever越大展示越往前

        win.isHidden = false

        win.backgroundColor = .black

        win.addSubview(blueView)

    }

    

    @objc func test() {

        win.isHidden = true

        win = nil //必须写, 只有这个方法才能将wind从UIAppliction的 windows视图移出, 否则即使页面消失掉前去查看, 打印windows的counts发现window也是在的

        self.dismiss(animated: true, completion: nil)

    }

    

    deinit {

        if (win == nil) {

            print("window消失了")

        } else {

            print(win)

        }

    }

 

}

你可能感兴趣的:(swift,iOS,开发)