2016-05-30 59 views
8

我正在使用圓形佈局的UICollectionview。我試圖計算每個項目的contentOffset,但圓形佈局完整contentsize似乎與內容不匹配。iOS:`UICollectionview`,如何通過`indexPath`獲得單元格的`contentoffset`

  • 的的CollectionView總contentSize = 780
  • 內容的最後一個項目的偏移量= 397(?)每個項目
  • 內容偏移量= 33(?)

有什麼辦法我可以通過indexPath或至少獲得collectionview中最後一個項目的正確值(397)來得到項目的偏移量?我通過測試和打印contentoffset得到了這些值,但我想通過代碼計算這些數字(33和397),而不必滾動。

那麼有沒有一種方法可以通過indexPath來計算collectionview內的單元格contentoffset(?)? 謝謝!

+0

也許你可以得到電池的框架,並通過知道計算它的內容偏移? UICollectionViewLayoutAttributes * attributes = [self.collectionView layoutAttributesForItemAtIndexPath:indexPath]; CGRect cellRect = attributes.frame; –

+0

好吧,我有我的單元格的x,y,寬度和高度..但我想要在我的uicollectionview內的項目的內容偏移量。我會用什麼代碼? –

+0

ContentOffset告訴你如果scrollView的contentSize大於它的frame.size,那麼scrollView已經在某個方向上滾動了多少,否則contentOffset是0.如果你想將它轉換爲UICollectionViewCell的位置,它會是這樣的:CGFloat offsetY = fabs( self.collectionView.contentOffset.y - cellLayoutAttributes.frame.origin.y);但我不知道你爲什麼需要這個。說實話,我不確定這是對的邏輯,因爲UICollectionViewCell不能有contentOffset,它有frame和indexPath。 –

回答

2

我發現問題了,scrollviewcontentsize是內容的大小+ uicollectionview's幀的大小。這就是contentSize返回比實際內容大的尺寸的原因。

這樣: (contentSizeX - collectionviews frame X)/cells = contentOffset per item (780 - 383)/12 => 33

相關問題