2015-10-30 147 views
0

我有一個問題,我不能在計算器和谷歌這一個找到答案,我得到了與此格式的UICollectionVIew給裕一個特定的細胞,UICollectionVIew

_______ 
|xxxxxxx| 
| xxxxx | 
| xxxxx | 
| xxxxx | 
| xxxxx | 
|_______| 

,我想給在第一個單元格的邊距,以得到這樣的:

_______ 
|xxxxxxx| 
|  | 
| xxxxx | 
| xxxxx | 
| xxxxx | 
|_______| 

我曾試圖給保證金細胞但給人的保證金每一個細胞和它不是我想要的,只是爲了與單細胞indexPath.item == 0.

是可能的嗎?如果不是我能做些什麼來實現這種佈局?預先感謝您

回答

1

您使用的是UICollectionViewFlowLayout?如果是的話,我建議利用一個標題視圖,爲您的第一個單元格:

_______ 
|xxxxxxx| 

和儲備UICollectionViewCell對其餘項目:

| xxxxx | 
| xxxxx | 
| xxxxx | 
|_______| 

UICollectionView支持三種不同類型的項目;

  • 細胞
  • 補充視圖
  • 裝飾瀏覽

UICollectionViewFlowLayout提供兩個準備使用的補充視圖,報頭視圖和頁腳視圖。標題視圖聽起來非常適合您的需求。

實現標題視圖後,可以通過調整UICollectionViewFlowLayoutsectionInset屬性來實現您描述的邊距。或執行委託方法:

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section; 


有一堆描述頁眉/頁腳視圖的網頁上的材料;

http://www.appcoda.com/supplementary-view-uicollectionview-flow-layout/

我也建議Collection View Programming Guide for iOS - 這是一個漫長而出色的讀取。特別是如果你需要配置任何自定義佈局。

希望有所幫助。

+0

那麼我怎麼可以在collectionVIew中啓動indexpath.item而不是0呢?因爲標題將是第一個索引路徑 if(indexPath.item == 0){return cell}? –

+0

單元格,補充視圖和裝飾視圖都保留自己的索引路徑,因此添加一個標題視圖不會將第一個單元格的索引路徑碰撞到(0,1),第一個標題視圖和第一個單元格將共享索引路徑(0,0)。所以當你實現'collectionView:cellForItemAtIndexPath:'時,你只需返回從0,0開始索引的單元格類型。對於標題視圖,您可以實現'collectionView:viewForSupplementaryElementOfKind:atIndexPath:'並返回標題。這也是從0,0索引。我希望這是有道理的。 –

+0

這很有道理,我明白我應該做什麼,謝謝。 –

0

您應該製作兩個集合視圖單元格類型。一個更寬,底部有一些空閒空間。其次爲其他人。

+0

多數民衆贊成在一個簡單的方法來做到這一點,我設法與你的答案,但我認爲其他答案是最正確的。如果我告訴我,我可能是錯的,只是想要最好的方法來做正確的事情 –