Попытка добавить CollectionView в заголовок ResuableView, например, Instagram или SNapchat. - PullRequest
0 голосов
/ 27 мая 2019

Я хочу иметь 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 ]

0 голосов
/ 27 мая 2019

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

Сделайте повторно используемое представление делегатом и источником данных, и это сработало для меня

//  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
    }


}
0 голосов
/ 27 мая 2019

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

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

}

Здесь вы бы добавили свой пользовательский вид с UICollectionView как UICollectionReusableView

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...