Заголовок будет добавлен правильно, если я не укажу направление прокрутки.Но если я укажу это, ячейки заменяются видом заголовка.Только заголовок будет отображен.Как решить это?Пожалуйста, помогите!
class HongbeiCollectionView: UICollectionView,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout,UICollectionViewDelegate {
var hongbeiData : [Hongbei]!
override init(frame: CGRect, collectionViewLayout layout: UICollectionViewLayout) {
let layout = UICollectionViewFlowLayout()
layout.scrollDirection = .horizontal
// layout.headerReferenceSize = CGSize(width: frame.width, height: 10)
super.init(frame: frame, collectionViewLayout: layout)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int{
print("Hongbei")
return hongbeiData.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell{
print("cell is being called")
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "HongbeiCell", for: indexPath) as! HongbeiCell
cell.hongbeiButton.sd_setImage(with: URL.init(string: hongbeiData[indexPath.item].video_img ?? ""), for: .normal, placeholderImage: #imageLiteral(resourceName: "moren-2"))
cell.hongbeiButton.clipsToBounds = true
cell.hongbeiButton.layer.cornerRadius = 10.0
print("title is \(hongbeiData[indexPath.item].title!)")
cell.hongbeiLabel.text = hongbeiData[indexPath.item].title!
cell.setID(id: hongbeiData[indexPath.item].video_id!)
cell.hongbeiButton.setTitle("Button \(indexPath)", for: .normal)
return cell
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize{
return CGSize(width: 150, height: 150)
}
func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView{
print("viewForSupplementaryElementOfKind is called")
let headerView = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionElementKindSectionHeader, withReuseIdentifier: "HeaderForCollectionView", for: indexPath as IndexPath) as! HeaderForCollectionView
headerView.labelHeader.text = "Hongbei"
return headerView
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize{
print("referenceSizeForHeaderInSection")
return CGSize(width: collectionView.frame.width, height: 30)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets{
return UIEdgeInsets(top: 0, left: 20.0, bottom: 0, right: 0.0)
}
}
Если я укажу ширину referenceSizeForHeaderInSection's
меньше collectionview.frame.width
, то сначала будет отображаться заголовок, а затем ячейки.
Кроме того, если вы заметили, что OneyuanZone CollectionView выполняет вертикальную прокрутку и его заголовок добавляется правильно.