Не удается получить заголовок для отображения на моей странице UIcollectionView в Swift 4 - PullRequest
1 голос
/ 15 марта 2019

Я пытаюсь создать страницу профиля, похожую на страницу instagram, но не могу отобразить мой заголовок (UserProfileHeader.swift) на странице UICollectionView (UserProfileVC.swift).

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

import UIKit
import Firebase

private let reuseIdentifier = "Cell"
private let headerIdentifier = "UserProfileHeader"

class UserProfileVC: UICollectionViewController, UICollectionViewDelegateFlowLayout {

    // MARK: Properties

    let db = Firestore.firestore() // Connects firestore

    let customGrayColor = UIColor(red: 247/255, green: 247/255, blue: 242/255, alpha: 1)

    override func viewDidLoad() {
        super.viewDidLoad()

        let settings = db.settings
        settings.areTimestampsInSnapshotsEnabled = true
        db.settings = settings

        // Register cell classes
        self.collectionView!.register(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)

        self.collectionView!.register(UserProfileHeader.self, forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: headerIdentifier)


        // Background color
        self.collectionView?.backgroundColor = customGrayColor

        fetchCurrentUserData()
    }


    // MARK: UICollectionView

    override func numberOfSections(in collectionView: UICollectionView) -> Int {
        print("numberOfSections works -------------------->")
        return 1
    }


    override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        // #warning Incomplete implementation, return the number of items
        print("numberOfItemsInSection -------------------->")
        return 0
    }


    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
        print("referenceSizeForHeaderInSection -------------------->")

        return CGSize(width: view.frame.width, height: 200)
    }


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

        // Declare header
        let header = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: headerIdentifier, for: indexPath) as! UserProfileHeader
        print("dequeueReusableSupplementaryView -------------------->")

        // Return header
        return header
    }


    override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath)

        // Configure the cell
        print("dequeueReusableCell -------------------->")
        return cell
        }
}

Скрипт UserProfileHeader.swift

import UIKit

class UserProfileHeader: UICollectionViewCell {

    override init(frame: CGRect) {
        super.init(frame: frame)

        self.backgroundColor = .red

        print("UserProfileHeader -------------------->")


    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

Консоль

    nw_protocol_boringssl_get_output_frames(1301) [C1.1:2][0x7faa496143b0] get output frames failed, state 8196
2019-03-15 09:59:29.118574-0500 HobbiStyle[35259:1722282] [BoringSSL] 
    nw_protocol_boringssl_get_output_frames(1301) [C1.1:2][0x7faa496143b0] get output frames failed, state 8196
2019-03-15 09:59:29.119123-0500 HobbiStyle[35259:1722282] TIC Read Status [1:0x0]: 1:57
2019-03-15 09:59:29.119274-0500 HobbiStyle[35259:1722282] TIC Read Status [1:0x0]: 1:57
numberOfSections works -------------------->
numberOfItemsInSection -------------------->

1 Ответ

0 голосов
/ 16 марта 2019

Я нашел проблему, все хорошо с обоими сценариями, проблема была в моем контроллере панели вкладок, я объявил profileVC как UICollectionViewLayout вместо UICollectionViewFlowLayout. Кредит @ StephanDowless

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