我有一個UICollectionView(一行,垂直對齊)與UIPageControl相關聯。UIPageControl with UICollectionView/TableView
UIPageControl將具有點數作爲我的收藏視圖中的項目數。
我想要改變/滾動collectionView的位置,當點按下時。 此外,我想根據收集視圖的滾動更改選定的點。
關於scrollViewDidScroll
方法的某種算法的任何想法也實現了這一點?
在此先感謝
我有一個UICollectionView(一行,垂直對齊)與UIPageControl相關聯。UIPageControl with UICollectionView/TableView
UIPageControl將具有點數作爲我的收藏視圖中的項目數。
我想要改變/滾動collectionView的位置,當點按下時。 此外,我想根據收集視圖的滾動更改選定的點。
關於scrollViewDidScroll
方法的某種算法的任何想法也實現了這一點?
在此先感謝
我有一個簡單的解決方案。 在scrollViewDidScroll
只是檢查可見單元格在屏幕中間的方法:
CGRect visibleRect = (CGRect){.origin = self.collectionView.contentOffset, .size = self.collectionView.bounds.size};
CGPoint visiblePoint = CGPointMake(CGRectGetMidX(visibleRect), CGRectGetMidY(visibleRect));
NSIndexPath *visibleIndexPath = [self.collectionView indexPathForItemAtPoint:visiblePoint];
[self.pageControl updateStateForPageNumber: (int)visibleIndexPath.row];
如果我理解正確的話,我想你可以通過UICollectionViewDataSource
每當一個項目是從您可以選擇在UIPageControl相關點的數據源請求的collectionView:cellForItemAtIndexPath:
方法做到這一點。 這幫忙嗎?
這是行不通的,因爲當一個單元被請求時,它不會在那一刻顯示出來,從前一個單元中有更多的可見區域 – DaSilva
@DaSilva是的,但取決於您在屏幕上隨時顯示的細胞數量,您可以在「中間」顯示哪個細胞正在顯示。假設你可以一次顯示一個單元格,並且你得到了單元格3的請求,那麼你知道當前可見的那個是2. – vishalv2050
我想我找到了更好的解決方案@ vishalv2050。在下面回答我的答案 – DaSilva
[?iOS6的UICollectionView和UIPageControl - 如何獲得可見細胞]的可能的複製(http://stackoverflow.com/questions/ 13176333/ios6-uicollectionview-and-uipagecontrol-how-to-get-visible-cell) – iosMentalist