gpt4 book ai didi

ios - 使用 convertPoint 获取父 UIView 内的相对位置

转载 作者:IT老高 更新时间:2023-10-28 11:30:58 24 4
gpt4 key购买 nike

我已经查看了有关此主题的十几个 SO 问题,但没有一个答案对我有用。也许这会帮助我回到正确的道路上。

想象一下这个设置:

enter image description here

我想获取 UIButton 相对于 UIView 的 center 坐标。

也就是说,UIButton 中心在 UITableViewCell 内可能是 215、80,但相对于 UIView 应该更像是 260、165。如何在两者之间进行转换?

这是我尝试过的:

[[self.view superview] convertPoint:button.center fromView:button];  // fail
[button convertPoint:button.center toView:self.view]; // fail
[button convertPoint:button.center toView:nil]; // fail
[button convertPoint:button.center toView:[[UIApplication sharedApplication] keyWindow]]; // fail

我可以通过循环遍历所有按钮的 super View 并将 x 和 y 坐标相加来实现这一点,但我怀疑这有点矫枉过正。我只需要找到covertPoint 设置的正确组合。对吧?

最佳答案

button.center 是在其父 View 的坐标系中指定的中心,所以我假设以下工作:

CGPoint p = [button.superview convertPoint:button.center toView:self.view]

或者您在其自己的坐标系中计算按钮的中心并使用它:

CGPoint buttonCenter = CGPointMake(button.bounds.origin.x + button.bounds.size.width/2,
button.bounds.origin.y + button.bounds.size.height/2);
CGPoint p = [button convertPoint:buttonCenter toView:self.view];

Swift 4+

let p = button.superview!.convert(button.center, to: self.view)

// or

let buttonCenter = CGPoint(x: button.bounds.midX, y: button.bounds.midY)
let p = button.convert(buttonCenter, to: self.view)

关于ios - 使用 convertPoint 获取父 UIView 内的相对位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15883305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com