UIView类中的Swift集合视图委托

时间:2017-06-29 09:33:59

标签: ios uiview uicollectionview

我有一个通过故事板的集合视图,位于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
}

1 个答案:

答案 0 :(得分:0)

好的。确实可以通过UIView类来完成。但是它在init(frame: CGRect)方法中不起作用。您需要在layoutSubviews()draw(_ rect: CGRect)

中运行它

像这样:

override func layoutSubviews() {
    collectionView.delegate = self
    collectionView.dataSource = self
}