获取 UIButton 在 UITableViewCell 中的位置

Get position of UIButton in UITableViewCell

我在静态 UITableViewCell 中有一个按钮。我想要做的是在按钮位置放置一个 UIView。

如果我只获取按钮位置,它会给我一个相对于 tableviews 单元格的位置,而不是从 tableViewController 的顶部。我想要的是从 tableViewController 的顶部获取按钮位置。

For example: If the button is 8px away from the top of the current cell, but 57px away from the top of the viewController, I want to place the UIView at 57px.

这是我的代码:

- (void)viewDidLoad {
    CGPoint buttonPosition = [button convertPoint:CGPointZero fromView:self.tableView];
    NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition];

    CGRect rect = [myTableView rectForRowAtIndexPath:indexPath];

    NSLog(@"%f, %f", rect.origin.y, rect.origin.x);

    self.infoView = [[UIView alloc] initWithFrame:CGRectMake(button.frame.origin.x, button.frame.origin.y, 220, 110)];
}

nslog 的输出为 0。

我还想在 iphone 进入横向模式时更新 UIView 的位置。

CGPoint originalPoint = button.frame.origin;
CALayer *layer = self;
CGPoint point = originalPoint;
while (layer.superlayer)
{
    point = [layer convertPoint:point toLayer:layer.superlayer];
    layer = layer.superlayer;
}

//When you reach this code, you should have the position in the rootView