Попытка добавить CollectionView в заголовок ResuableView, например, Instagram или SNapchat.

Я хочу иметь CollectionView в моем заголовке, который похож на это в Instagram и Snapchat для моего основного CollectionView, который будет фидом. Когда я пытаюсь добавить представление коллекции из библиотеки и установить заголовок как делегат и источник данных после реализации методов делегата, я все равно ничего не вижу в заголовке.

    //let layout = UICollectionViewFlowLayout()

    let headerCollection = UICollectionView(frame: CGRect(x: 0, y: 0, width: 50, height: 90), collectionViewLayout: UICollectionViewFlowLayout())

    override func awakeFromNib() {
        super.awakeFromNib()

//       headerCollection.delegate = self
//        headerCollection.dataSource = self
    }


}

extension HeaderforFeed: UICollectionViewDataSource, UICollectionViewDelegate{
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return CollectionViewData.Dict_StrImg.count
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = UICollectionViewCell(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
        cell.backgroundColor = .red
        return cell
    }


}```

2 ответа

Исходя из вашего кода, я думаю, что проблема в том, что вы не добавляете его в заголовок (я понимаю это как раздел заголовка внутри вашего UICollectionView). Если это так, попробуйте добавить его в

func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {

}

Здесь вы можете добавить свой собственный вид с UICollectionView как UICollectionReusableView

Я не знаю, может ли это помочь тебе, но по твоему вопросу я понял

Это хорошо, я понял это. Я добавил коллекцию из библиотеки в свой заголовок в раскадровке. Затем я подключил его как выход в моем классе UICollectionReusableView. Затем я заставил этот класс реализовать методы делегата для представления коллекции, но для заголовка.

Сделайте reusableview делегатом и источником данных, и это сработало для меня

//  HeaderforFeed.swift
//  finishedFeednStories
//
//  Created by Guh Suck Yu Mada
//  Copyright © 2019 Bumboklat. All rights reserved.
//

import UIKit

class HeaderforFeed: UICollectionReusableView {
    //let layout = UICollectionViewFlowLayout()


    @IBOutlet weak var storiesCollection: UICollectionView!


    override func awakeFromNib() {
        super.awakeFromNib()

       storiesCollection.delegate = self
        storiesCollection.dataSource = self
    }


}

extension HeaderforFeed: UICollectionViewDataSource, UICollectionViewDelegate{
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return CollectionViewData.Dict_StrImg.count
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "storiesCell", for: indexPath) as! StoriesCell

        cell.storiesImg.image = Array(CollectionViewData.Dict_StrImg)[indexPath.row].value
        cell.storiesLabel.text = Array(CollectionViewData.Dict_StrImg)[indexPath.row].key

        return cell
    }


}
Другие вопросы по тегам