获取UIButton在UITableViewCell中的位置

时间:2015-01-26 06:23:38

标签: ios objective-c uitableview cgrect

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

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

  

例如:如果按钮距离电流顶部8px   单元格,但距离viewController的顶部57px,我想   把UIView放在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的位置。

1 个答案:

答案 0 :(得分:0)

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