如何在TableViewController中使用indexPathForItemAtPoint?

时间:2015-08-04 16:04:40

标签: ios objective-c uitableview uicollectionview

我正在使用PFQueryTableViewController,在我的PFQTVC.m中,我实施了scrollViewDidScroll方法,因此我可以在滚动时获得可见单元格的indexPath

然而,我得到了

  

PFQTVC'没有可见的界面。声明选择者' INDEXPATHFORITEMATPOINT'。

UITableViewDataSourceUITableViewDelegate已添加。

怎么办?

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    NSLog(@"Did Scroll");

    CGRect visibleRect = (CGRect){.origin = self.tableView.contentOffset, .size = self.view.bounds.size};
    CGPoint visiblePoint = CGPointMake(CGRectGetMidX(visibleRect), CGRectGetMidY(visibleRect));
    NSIndexPath *visibleIndexPath = [self indexPathForItemAtPoint:visiblePoint];

    NSLog(@"visible Index Path : %@", visibleIndexPath);
}

1 个答案:

答案 0 :(得分:2)

indexPathForItemAtPoint:方法来自UICollectionView,而不是UITableView。您想使用indexPathForRowAtPoint:。它需要在表视图上调用,而不是在控制器上调用。

你想:

NSIndexPath *visibleIndexPath = [self.tableView indexPathForRowAtPoint:visiblePoint];