1

我在 ViewController 中有一个 TableView,当我选择一个单元格时,我想检查它是否低于某个y限制。

y 限制是根据 viewController 的视图。

我取了单元格的原点并根据 ViewController 的视图对其进行了转换。这里我使用了 UIView 类的方法:convertPoint:fromView:

在这里,我将 tableView 本身作为 fromView 参数传递,考虑到它是单元格的直接父视图,并且单元格的框架将与 tableView 相关。

我看到我得到的新点的 y 值比我应该得到的有所增加。

有没有更好的方法来实现这一目标?

4

3 回答 3

8
CGRect rectOfCellInTableView = [tableView rectForRowAtIndexPath:indexPath];
CGRect rectOfCellInSuperview = [tableView convertRect:rectOfCellInTableView toView:[tableView superview]];

NSLog(@"cell rect is : %@",NSStringFromCGRect(rectOfCellInSuperview));
于 2013-06-06T13:24:23.127 回答
3

试试这个..

CGRect newPosition = [theCell convertRect:theCell.frame toView:yourViewController.view];

这将根据 yourViewController 为您提供单元格的位置

于 2013-06-06T13:06:38.420 回答
0

在斯威夫特 4

let rectOfCellInTableView = tableView.rectForRow(at: indexPath)
let rectOfCellInSuperview = tableView.convert(rectOfCellInTableView, to: tableView.superview)
print("cell rect is : \(rectOfCellInSuperview)")

let newPosition = cell.convert(cell.frame, to: yourViewController.view)

感谢 Warewolf 和 Prashant Nikam

于 2018-09-25T03:36:32.260 回答