我有一个通过故事板的集合视图,位于UIView中。我正在继承UIView并调用一个名为setupView()的方法。当我尝试从类中分配委托和数据源时,它似乎不起作用。我可以通过这个类分配委托和数据源,还是必须通过控制器来完成?
这是我的代码:
class homeView: UIView, UITextFieldDelegate {
@IBOutlet weak var collectionView: UICollectionView!
let storedService = StoredService()
override init(frame: CGRect) {
super.init(frame: frame)
print("I was called") // This doesn't print out!
setupView()
}
fileprivate func setupView() {
collectionView.dataSource = storedService
collectionView.delegate = storedService
}
答案 0 :(得分:0)
好的。确实可以通过UIView类来完成。但是它在init(frame: CGRect)
方法中不起作用。您需要在layoutSubviews()
或draw(_ rect: CGRect)
像这样:
override func layoutSubviews() {
collectionView.delegate = self
collectionView.dataSource = self
}