Ios 使用“UIScrollView”获取“UITableViewCell”索引XPath`
我有一个Ios 使用“UIScrollView”获取“UITableViewCell”索引XPath`,ios,objective-c,uiscrollview,uicollectionview,uitableview,Ios,Objective C,Uiscrollview,Uicollectionview,Uitableview,我有一个UITableViewCell,其中包含一个UICollectionView。UITableViewCell还包含一个UIPageControl。我想在滑动UICollectionView时更改点。我正在使用 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 获取当前可见的UICollectionViewCell。但我的问题是,由于UICollectionView位于UITableViewCell中,为了获取对
UITableViewCell
,其中包含一个UICollectionView
。UITableViewCell
还包含一个UIPageControl
。我想在滑动UICollectionView
时更改点。我正在使用
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
获取当前可见的UICollectionViewCell
。但我的问题是,由于UICollectionView
位于UITableViewCell
中,为了获取对collectionView的引用,我需要当前表视图的indexPAth,其中正在扫描收集单元格。我该怎么做
我想这样做:
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
// Change the dots
CustomTableCell *tableCell = [self.currentTable cellForRowAtIndexPath:_tablecellIndex];
NSInteger currentIndex = tableCell.currentCollectionView.contentOffset.x / tableCell.currentCollectionView.frame.size.width;
tableCell.currentPageControl.currentPage = currentIndex;
}
但是我如何获得_tablecellIndex
我试着做:
NSArray *indexes = [self.currentTable visibleCells];
_tablecellIndex = indexes[0];
但这并不总是正确的,因为有时表格单元格显示一半,而用户正在滑动第二个单元格。您需要询问表格视图本身,给定单元格的索引是什么。您可以使用以下命令执行此操作:
[self.formTableView indexPathForCell:myCell];
本例中的另一个问题是,您在单元格的集合视图中,而不是在tableview本身中。所以有几种方法可以做到这一点——一种很好的方法是在单元格上设置一个可以访问tableview的委托。这有点复杂,所以这里有一个更简单的方法(在本例中,self是cell对象):
这应该可以完成任务。在uicollectionViewcell中不能有indexpath属性。并在UITableView的cellforrowatindexpath委托中设置此属性是否在每行中都有集合视图?是的,我在每行中都有集合视图,但要访问collectionViewCell,我需要tableView单元格,因为collectionView位于tableViewCell中。啊,好的,抱歉。你有CustomTableCell类,对吗?在该类中执行代码。如果您没有该类的实际标头/main,请先创建它。然后把代码放进去,你自然也会得到cell对象,作为“self”(如果你已经得到了这个,很抱歉-我可以看看整个项目,看看你是如何构建的)。好的,谢谢。我会试试看
UITableView *parentTableView = (UITableView*)self.superview;
NSIndexPath *cellIndexPath = [parentTableView indexPathForCell:self];