tableview中如何获取section header的绝对位置?</p>
我已经使用tableView:viewForHeaderInSection:
来获取标题的视图。但是现在我需要获取此视图在屏幕中的绝对位置。返回值的框架不是屏幕中的绝对位置。我也尝试调用superview,但似乎不起作用。
tableview中如何获取section header的绝对位置?</p>
我已经使用tableView:viewForHeaderInSection:
来获取标题的视图。但是现在我需要获取此视图在屏幕中的绝对位置。返回值的框架不是屏幕中的绝对位置。我也尝试调用superview,但似乎不起作用。
tableView:viewForHeaderInSection:
是一种UITableViewDelegate
创建用于显示的标题视图的方法。但是,这意味着该视图尚未添加到视图层次结构中,从而使其框架对您的目的毫无意义。
尝试
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;
}