获取控件相对屏幕位置

2023-12-20  本文已影响0人  YN吾爱

let window:UIWindow = keyWindow()

let rect = window.convert(view.frame,from: view.superview)

 let rect = view.superview!.convert(view.frame,from: window)

convertRect:fromView: 是指从view.superview上将当前的view.frame转换为相对于window上的frame,获得相对应的rect

convertRect:toView: 是指view.superview 将view.frame转换到window上,获得相对应的rect

获取window

func keyWindow() ->UIWindow{

    if#available(iOS15.0, *) {

        let keyWindow = UIApplication.shared.connectedScenes

            .map({ $0as?UIWindowScene})

            .compactMap({ $0 })

            .first?.windows.first ?? UIWindow()

        return keyWindow

    }else{

        let keyWindow = UIApplication.shared.windows.first ?? UIWindow()

        return keyWindow

    }

}

上一篇 下一篇

猜你喜欢

热点阅读