Windows上のビューの位置を取得
1352 ワード
extension UIView {
func zhmfPositionInScreen() -> CGPoint {
/// , ,
if let superView = self.superview {
/**
UIScrollView UIScrollView
X Y
UIScrollView UIScrollView,
UIScrollView UIScrollView
UIScrollView scrollViewOffset.x scrollViewOffset.y,
*/
if let scrollView = superView as? UIScrollView {
let position = CGPoint.init(x: self.frame.origin.x, y: self.frame.origin.y)
let superPosition = superView.zhmfPositionInScreen()
let scrollViewOffset = scrollView.contentOffset
return CGPoint.init(x: superPosition.x + position.x - scrollViewOffset.x , y: superPosition.y + position.y - scrollViewOffset.y)
} else {
let superPosition = superView.zhmfPositionInScreen()
let position = self.frame.origin
return CGPoint.init(x: superPosition.x + position.x, y: superPosition.y + position.y)
}
} else {
return self.frame.origin
}
}
}
参考記事:https://www.cnblogs.com/zhanbaocheng/p/7855937.html