Я пытаюсь создать страницу профиля, похожую на страницу 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 -------------------->