获取UIView相对于其超级视图的超级视图的位置
我有一个UIView,我已经安排了UIButtons。 我想find那些UIButtons的位置。
我知道buttons.frame
会给我的立场,但它只会给我立场就其直接superview。
有没有什么方法可以find这些button的位置,就UIButtons superview的超级观点而言?
例如,假设有一个名为“firstView”的UIView。
然后,我有另一个UIView,“secondView”。 这个“SecondView”是“firstView”的子视图。
然后我有UIButton作为“secondView”的子视图。
->UIViewController.view --->FirstView A ------->SecondView B ------------>Button
现在,有什么办法可以find那个UIButton的位置,关于“firstView”?
你可以使用这个:
目标C
CGRect frame = [firstView convertRect:buttons.frame fromView:secondView];
迅速
let frame = firstView.convert(buttons.frame, from:secondView)
文档参考:
https://developer.apple.com/documentation/uikit/uiview/1622498-convert
框架(X,Y,宽度,高度)。
因此宽度和高度不会改变甚至超级超级视图。 你可以很容易得到X,Y如下。
X = button.frame.origin.x + [button superview].frame.origin.x; Y = button.frame.origin.y + [button superview].frame.origin.y;
更新了Swift 3
if let frame = yourViewName.superview?.convert(yourViewName.frame, to: nil) { print(frame) }