如何获取 UITableview 中第一个单元格的确切起始位置?
问问题
5178 次
4 回答
9
首先,您需要在表格中获取矩形
CGRect cellRectInTable = [tableView rectForRowAtIndexPath:indexPath];
然后你把它转换成超级视图
CGRect cellInSuperview = [tableView convertRect:cellRectInTable toView:[tableView superview]];
你也可能有运气
CGRect cellInWindow = [tableView convertRect:cellRectInTable toView:nil];
然后你可以访问这些矩形的起源
...rect.origin.x
...rect.origin.y
于 2013-08-01T21:09:34.827 回答
0
您可以通过以下方式获得它:
int y = cell.frame.origin.y;
int x = cell.frame.origin.x;
于 2013-08-01T20:53:53.040 回答
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]
于 2013-08-01T20:56:12.163 回答
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);
}
于 2013-08-01T20:58:29.433 回答