将UIButton放在UIScrollView绝对屏幕位置

Cri*_*tiC 6 xcode screen-positioning

这可能是一个愚蠢的问题,但我无法找到答案......

我有一个UIScrollView和许多UIButtons.当我按下按钮时,我想知道按钮的屏幕位置.如果我使用button.frame,它会给我在UIScrollView中的位置,这是正常的.

如何找到相对于按下按钮屏幕的x和y?

提前致谢.

Rob*_*ens 11

你的异议是正确的,而是使用

- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view
Run Code Online (Sandbox Code Playgroud)

来自UIView,就像

[button.superview convertPoint:button.frame.origin toView:nil];
Run Code Online (Sandbox Code Playgroud)

没有经过测试,但我认为应该有效.另请参阅iPhone - 在整个UIWindow中获取UIView的位置

  • 如果我水平滚动UIScrollView,我可能有button.frame.origin.x = 1017或其他什么,所以你的例子是不正确的. (3认同)

len*_*ooh 5

对于快速:

let pointXY:CGPoint = (button.superview?.convert(button.frame.origin, to: nil))!
print("button pointXY: \(pointXY.debugDescription)")
Run Code Online (Sandbox Code Playgroud)