collectionview怎么获取cell
1个回答
展开全部
首先, 页面的需求是这样的:
1.页面上半部分是可以横向分页滚动的视图A, 每页显示一个图表
2.随着视图A滚动到不同的页数, 下半部分(视图B)变换不同的数据
3.视图A每页的图表有多处可以点击,并且点击事件也会触发视图B数据显示的变换.
用图来表示一下:
页面要求
整体的思路并不难, 我采取了下面的方案:
1.顶部使用UICollectionView作为滚动视图, 使其cell大小等于自身大小, 每个cell展示一个图表
2.每次滚动完毕及点击cell中图表的点时, 获取collectionView当前展示的cell的indexPath,以此获取该坐标对应的值展示到下方.
所以,这个功能的关键点就在于如何获取顶部CollectionView当前显示的cell的indexPath.
我先后试过以下几种方案:
方案一:
通过之前做过的自动轮播的广告banner的经验(和这个需求有相似的地方),我先采用了之前的方法:
通过UICollectionView的-collectionView:didEndDisplayingCell:forItemAtIndexPath:方法得到indexPath更新的时刻, 然后用[collectionView indexPathsForVisibleItems]获取一组当前显示的cell们的indexPath的数组,由于我的cell大小刚好等于collectionView的大小,所以这个数组只包含一个元素(后来证明了即使是这样,这个数组也不一定只有一个元素),我只要取里面的第一个就好了.
- (void)collectionView:(UICollectionView *)collectionView
didEndDisp
1.页面上半部分是可以横向分页滚动的视图A, 每页显示一个图表
2.随着视图A滚动到不同的页数, 下半部分(视图B)变换不同的数据
3.视图A每页的图表有多处可以点击,并且点击事件也会触发视图B数据显示的变换.
用图来表示一下:
页面要求
整体的思路并不难, 我采取了下面的方案:
1.顶部使用UICollectionView作为滚动视图, 使其cell大小等于自身大小, 每个cell展示一个图表
2.每次滚动完毕及点击cell中图表的点时, 获取collectionView当前展示的cell的indexPath,以此获取该坐标对应的值展示到下方.
所以,这个功能的关键点就在于如何获取顶部CollectionView当前显示的cell的indexPath.
我先后试过以下几种方案:
方案一:
通过之前做过的自动轮播的广告banner的经验(和这个需求有相似的地方),我先采用了之前的方法:
通过UICollectionView的-collectionView:didEndDisplayingCell:forItemAtIndexPath:方法得到indexPath更新的时刻, 然后用[collectionView indexPathsForVisibleItems]获取一组当前显示的cell们的indexPath的数组,由于我的cell大小刚好等于collectionView的大小,所以这个数组只包含一个元素(后来证明了即使是这样,这个数组也不一定只有一个元素),我只要取里面的第一个就好了.
- (void)collectionView:(UICollectionView *)collectionView
didEndDisp
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询