如何在tableview中获取节标题的绝对位置?

如何在tableview中获取节标题的绝对位置?

我已经使用tableView:viewForHeaderInSection:获取标题的视图。但是现在我需要在屏幕上获得这个视图的绝对位置。 返回值的框架不是在屏幕上的绝对位置。我也试图调用superview,但它似乎不工作。

tableView:viewForHeaderInSection:是一个UITableViewDelegate方法,用于创build一个用于显示的标题视图。 然而,这意味着视图还没有被添加到视图层次结构中,从而使得视图对于您的目的而言毫无意义。

尝试

 UIView *headerView = [tableView headerViewForSection:sectionIndex]; 

代替。 从那里你可以在返回的视图上尝试以下方法,以获取其他视图坐标系中的视图的矩形:

 [headerView convertRect:[headerView bounds] toView:[headerView window]]; 

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

 - (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; }