我创建了一个内部框架,它在 iOS 12 之前运行良好,因为我在窗口上添加了一个按钮(浮动按钮),以便它在整个应用程序中可见。
我创建了一个 UIWindow 类来添加一个按钮,检查下面的代码
public class FloatingButtonWindow: UIWindow {
public var button: UIButton?
public init() {
super.init(frame: UIScreen.main.bounds)
backgroundColor = nil
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
public override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
guard let button = button else { return false }
let buttonPoint = convert(point, to: button)
return button.point(inside: buttonPoint, with: event)
}
}
在应用程序委托中,在 didfinishlaunchingwithoption 我使用共享实例调用
FloatingButtonController.sharedInstance.button.addTarget(self, action: #selector(AppDelegate.floatingButtonWasTapped), for: .touchUpInside)
但是从 iOS 13 开始,由于引入了 UIWindowscene,应用程序上看不到按钮。
我需要帮助才能使用 UIWindowscene 在 iOS 13 中的应用程序窗口上添加浮动按钮。
注意:作为一种解决方法,我已经从我的项目中删除了场景并且它运行良好,但我需要更灵活的解决方案,可以在 iOS 13 及更高版本上使用。所以我只需要更新我的框架。