我有 ViewController 叫myVC和 UITablewView - myTable。
我想要的是从代码中添加一些 UIView 作为myTable 的headerView 。所以在myVC的 viewDidLoad() 方法中,我添加了这段代码
let topView = TopView()
topView.frame.size.height = 100
topView.frame.size.width = myTable.frame.width
myTable.tableHeaderView = featuredEventsView
我还创建了名为 TopView.swift 的文件,看起来像
class TopView : UIView {
override init(frame: CGRect) {
super.init(frame: frame)
self.backgroundColor = .red
}
required init?(coder aDecoder: NSCoder) {.....}
}
它正在按应有的方式工作。我在 myTable 的headerView中看到红色 UIView 。
现在我想在topView中添加 UICollectionView ,我在这里遇到了问题。我正在尝试做类似的事情
class TopView : UIView, UICollectionViewDataSource, UICollectionViewDelegate {
override init(frame: CGRect) {
super.init(frame: frame)
self.backgroundColor = .red
addSubview(myCollectionView)
}
required init?(coder aDecoder: NSCoder) {.....}
let myCollectionView : UICollectionView = {
let cv = UICollectionView()
cv.translatesAutoresizingMaskIntoConstraints = false
cv.delegate = self as! UICollectionViewDelegate
cv.dataSource = self as! UICollectionViewDataSource
cv.backgroundColor = .yellow
return cv
}()
}
我还创建了 UICollectionViewDataSource 所需的函数,但构建后应用程序崩溃。我究竟做错了什么?