簡體   English   中英

UICollectionView正在顯示,但單元格未顯示在swift中

[英]UICollectionView is showing but the cells are not showing in swift

我以編程方式創建了一個collectionView(沒有storyboard)。 我將背景顏色設置為紅色,並且顯示正確。 但細胞沒有顯示出來。 有誰知道為什么細胞沒有顯示?

private let cellId = "cellId"
class InfoViewShow: NSObject, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {
private let cellHeight:CGFloat = 80

var collectionView: UICollectionView?
let layout = UICollectionViewFlowLayout()

override init() {
    super.init()

    setupCollectionview()

    collectionView?.registerClass(InfoCell.self, forCellWithReuseIdentifier: cellId)
}

private func setupCollectionview() {
    if let view = UIApplication.sharedApplication().keyWindow {
        //let y = (view.frame.width * 10 / 16) + 34 + 26
        collectionView = UICollectionView(frame: .zero , collectionViewLayout: layout)
        collectionView?.backgroundColor = UIColor.redColor()
        collectionView?.delegate = self
        collectionView?.dataSource = self
        collectionView?.frame = CGRectMake(0, 0, view.frame.width, view.frame.height) // y to y
    }
}

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return 3
}

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier(cellId, forIndexPath: indexPath)
    cell.backgroundColor = UIColor.blackColor()
    return cell
}

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
    return CGSizeMake(collectionView.frame.width, cellHeight)
}

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets {
    return UIEdgeInsetsMake(5, 5, 5, 5); //top,left,bottom,right
}
}

我沒有看到你添加collectionView來查看。

if let view = UIApplication.sharedApplication().keyWindow {
        //let y = (view.frame.width * 10 / 16) + 34 + 26
        collectionView = UICollectionView(frame: .zero , collectionViewLayout: layout)
        collectionView?.backgroundColor = UIColor.redColor()
        collectionView?.delegate = self
        collectionView?.dataSource = self
        collectionView?.frame = CGRectMake(0, 0, view.frame.width, view.frame.height) // y to y

        ///try add
        self.view.addSubview(collectionView)
    }

您必須實現UICollectionViewDataSource委托方法的numberOfSectionsInCollectionView 此方法是可選的,但您必須實現它並返回至少一個部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM