对不起,我的英语不好。
我正在尝试以编程方式创建集合视图,但是它说flowLayout是一个未解决的标识符。
import Foundation
import UIKit
import RxSwift
class ChapterViewController: UIViewController, UICollectionViewDataSource,
UICollectionViewDelegateFlowLayout, UICollectionViewDelegate {
private var myCollectionView: UICollectionView!
var chapterName: String?
var bibleArray = BibleBooksMock().booksArray
override func viewDidLoad() {
super.viewDidLoad()
title = chapterName
view.backgroundColor = UIColor.white
self.myCollectionView = UICollectionView(frame: self.view.bounds, collectionViewLayout: flowLayout)
myCollectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "collectionCell")
myCollectionView.delegate = self
myCollectionView.dataSource = self
myCollectionView.backgroundColor = UIColor.cyan
self.view.addSubview(myCollectionView)
}
答案 0 :(得分:3)
虽然我相信@Alex Bailey有一个很棒的答案,但我想添加更多内容。
let flowLayout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
self.myCollectionView = UICollectionView(frame: self.view.bounds, collectionViewLayout: flowLayout)
我想弄清楚为什么你的不起作用以及为什么不起作用。您有
self.myCollectionView = UICollectionView(frame: self.view.bounds, collectionViewLayout: flowLayout
但是,如果您查看代码,则没有名为flowLayout的变量。因此,Swift正在寻找一个未预先初始化的名为flowLayout
的变量。在正确的答案中,我们将flowLayout
初始化为
let flowLayout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
因此,我们知道flowLayout
是什么:UICollectionViewFlowLayout
。因此,在Swift中,如果看到unresolved identifier
错误,则可能尚未初始化可能以为已初始化的变量。通常这是一个简单的错误即可解决。
答案 1 :(得分:1)