2015-12-30 37 views
0

語境如何使UICollectionViewCell跨越整行?

  • 我試圖創建一個使用UICollectionView類似Table view東西。

  • 我正在使用Xcode7和故事板。

  • 我這樣做的方式是將集合視圖拖過整個控制器視圖。

  • 然後我拖動整個單元格橫過該行並將其與左右邊界對齊。

問題

  • 但是,當我放置標籤的細胞內,然後它被正確地只當該裝置處於水平位置顯示。
  • 當設備是垂直時,它會在左邊界處切斷。

問題

如何確保集合視圖單元格的寬度相匹配的容器寬度?

回答

0

這是因爲你沒有使用自動佈局。您可以在故事板或代碼中完全實現此目的。 使用故事板

  1. 添加UICollectionView在故事板UIViewController中。
  2. 拖動UICollectionView來填充你的UIViewController。
  3. 添加約束如圖所示。 enter image description here
  4. 拖動UICollectionView以填充UICollectionView。
  5. 添加UILabel(或任何你想要在單元格中)。還要在該元素中添加約束。
  6. 構建並運行。
+0

我有自動佈局設置。但是,我無法在CollectionView或CollectionViewCell級別添加任何約束。當我選擇這些元素時,紅線沒有啓用。我確實在該單元的一部分添加了UILabel。但是,它似乎沒有幫助。 –

+0

您不需要在UICollectionViewCell上添加約束。只需在單元格中添加控件(例如UILabel)並在這些控件上添加約束條件,而不是單元格本身。 –

+0

我在UILabel上添加了約束條件。但是,由於某種原因,它似乎並不奏效。 –

0

1)實施小區大小的功能,並返回集合寬度:

-(CGSize) collectionView: (UICollectionView*) collectionView layout:(UICollectionViewLayout*) collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath*) indexPath { 
    CGFloat height = 50; //set the wanted height 
    return CGSizeMake(collectionView.frame.size.width,height); 
} 

2)重新加載集合當屏幕尺寸改變(即取向變化)。

+0

我需要一個自定義的佈局,對吧?試圖使用默認佈局來實現這一點。但是,會給這個鏡頭。 –

+0

不,這個函數是佈局的委託,但是如果你要實現它(即使你沒有聲明這個類作爲佈局的委託),集合會調用它。 – Yedidya