2017-04-12 53 views
0

我對我的CollectionView頂部有2個視圖,只想滾動所有這3個視圖。我明白最好的方法是將這兩個頂部視圖放在我的collectionView標題中。如何在故事板(界面生成器)中實現此功能而無需任何代碼? (我用這種方式在我的另一個的tableView但我不能CollectionoView做到這一點)在StoryBoard中添加視圖到CollectionView標題

我拖累了這些2次到我的CollectionView的reusableView(headerView)和我碰到這樣的錯誤: enter image description here

+0

我建議您在底部使用滾動視圖,並在頂部設置視圖和集合視圖。這將在未來給你帶來更好的效果 –

+0

蘋果不贊成這個解決方案,因爲兩個卷軸重疊,即使我禁用collectionView的滾動屬性另一個問題是我沒有我的contentView(CollectionView的高度是動態的)的確切高度說我的scrollView和這將導致在IB @SivajeeBattina – Omnia

+0

錯誤不,你可以找出收集視圖的高度。使用collectionView.ContentSize屬性來獲取它的高度。 –

回答

0

您無法在界面構建器中拖放並獲取集合視圖的標題視圖。你必須另外實現返回UICollectionReusableView的viewForSupplementaryElementOfKind方法。在使用集合可重用視圖時,我們必須以不同的方式處理該視圖,類似於我們爲可重用細胞所做的事情。

要遵循的步驟。

  1. 創建該標頭視圖一個類(HeaderViewExample)。
  2. 將類(HeaderViewExample)分配給剛添加到界面構建器中的可重用視圖。
  3. 爲可重用的視圖提供可重用的標識符(HeaderViewExample)。
  4. 現在您將標籤或按鈕添加到可重複使用的視圖中,併爲類HeaderViewExample中的這些插座創建插座。

注:當使用可重複使用的意見,不要直接在控制器中創建網點

立即更新與下面的代碼你CollectionViewController。

override func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: 
NSIndexPath) -> UICollectionReusableView { 

    var reusableView = UICollectionReusableView() 

    if kind == UICollectionElementKindSectionHeader { 
      guard let view = collectionView?.dequeueReusableSupplementaryViewOfKind(kind, withReuseIdentifier: String(HeaderViewExample), forIndexPath: indexPath) as? HeaderViewExample else { return reusableView } 
      view.label = "Test String" 
      view.backgroundColor = UIColor.redColor() 
    } else { 
     assert(false, "Unexpected element kind") 
    } 

    return reusableView 
    } 
+0

我這樣做,但我得到另一個錯誤至極說:「〜/ Main.storyboard:錯誤:非法配置:從LiveViewController到iCarousel的liveCarousel出口是無效的。連接到重複的內容。「我應該如何將視圖的出口連接到主viewController? – Omnia

+0

我已經更新了我的答案,並通過了它。 –

相關問題