簡體   English   中英

提出collectionview的問題

[英]Issues with presenting collectionview

我想在用戶點擊按鈕時顯示視圖控制器。 但是我收到錯誤消息:

UICollectionView must be initialized with a non-nil layout parameter

但是我確定我在viewDidLoad中設置了布局...

有什么建議么?

這是代碼。

這是我介紹視圖控制器的地方

func handleLogout(){

    print("logout")

    let loginController = LoginController()

    present(loginController, animated: true, completion: nil)

}

這是登錄控制器viewDidLoad

override func viewDidLoad() {
    super.viewDidLoad()

    let layout:UICollectionViewFlowLayout = UICollectionViewFlowLayout.init()

    collectionView?.setCollectionViewLayout(layout, animated: true)
    collectionView?.delegate = self
    collectionView?.dataSource = self
    collectionView?.backgroundColor = UIColor.white
}

如果有的話,我想我可能必須先初始化它,然后再介紹它。 不太清楚該怎么做。

原來我是對的,我懷疑展示之前必須初始化collectionview是正確的。

就是這樣

    let layout = UICollectionViewFlowLayout()

    let loginController = LoginController(collectionViewLayout: layout)
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
    let cellSize = CGSize(width: 90, height: 120)
    //
    return CGSizeMake(cellSize)
}

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets {

    return UIEdgeInsetsMake(top: 20, left: 10, bottom: 10, right: 10)
}

必須使用非nil布局參數初始化UICollectionView

它說您需要使用initWithFrame:collectionViewLayout:以編程方式啟動您的collectionView

暫無
暫無

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

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