7

tableview中如何获取section header的绝对位置?</p>

我已经使用tableView:viewForHeaderInSection:来获取标题的视图。但是现在我需要获取此视图在屏幕中的绝对位置。返回值的框架不是屏幕中的绝对位置。我也尝试调用superview,但似乎不起作用。

4

2 回答 2

9

tableView:viewForHeaderInSection:是一种UITableViewDelegate创建用于显示的标题视图的方法。但是,这意味着该视图尚未添加到视图层次结构中,从而使其框架对您的目的毫无意义。

尝试

UIView *headerView = [tableView headerViewForSection:sectionIndex];

反而。从那里您可以在返回的视图上尝试以下方法,以在任何其他视图的坐标系中获取视图的矩形:

[headerView convertRect:[headerView bounds] toView:[headerView window]];
于 2013-07-28T05:47:34.087 回答
0

假设您的顶级视图直接包含表视图,而表视图又包含标题:

- (CGRect) getHeaderAbsoluteFrame : (UIView *)headerview :(UIView *)tableview
{
  CGRect frame = headerview.frame;
  CGRect tableFrame = tableview.frame;

  float x = tableview.  origin.x + headerview.frame.origin.x;
  float y = tableview.frame.origin.y + headerview.frame.origin.y;

  CGRect rect = CGRectMake (x,y,headerview.frame.size.width, headerview.frame.size.height);
  return rect;
}
于 2013-07-28T05:37:29.267 回答