如何在UITableview中获取第一个单元格的确切起始位置?
答案 0 :(得分:9)
首先,您需要在表中获取矩形
CGRect cellRectInTable = [tableView rectForRowAtIndexPath:indexPath];
然后你将其转换为超级视图
CGRect cellInSuperview = [tableView convertRect:cellRectInTable toView:[tableView superview]];
你可能也有运气
CGRect cellInWindow = [tableView convertRect:cellRectInTable toView:nil];
然后你可以访问那些rects的来源
...rect.origin.x
...rect.origin.y
答案 1 :(得分:0)
您可以使用以下方式获取它:
int y = cell.frame.origin.y;
int x = cell.frame.origin.x;
答案 2 :(得分:0)
在委托方法tableView:cellForRowAtIndexPath中调用dequeueReusableCellWithIdentifier:forIndexPath:之后调用以下命令:然后将其存储在CGPoint属性中。
更紧凑
if (self.indexPath.row == 0 && self.indexPath.section == 0){
CGPoint point = CGPointMake(cell.frame.origin.x, cell.frame.origin.y);
self.firstPoint = point;
}
当然,你可以把self.firstPoint放在point的位置,但我把它们分开来演示。
您也可以通过调用
从任何给定方法中的索引路径获取单元格[self.tableView cellForRowAtIndexPath: indexPath]
答案 3 :(得分:0)
试试这个:
int numberOfCells = [self.tableView numberOfRowsInSection:0]; // whatever section number
if (numberOfCells > 0) {
NSIndexPath *firstCellIndex = [NSIndexPath indexPathForRow:0 inSection:0];
UITableViewCell *firstCell = [self.tableView cellForRowAtIndexPath:firstCellIndexPath];
NSLog(@"%d, %d", firstCell.frame.origin.x, firstCell.frame.origin.y);
}