[英]UICollectionViewDataSource, UICollectionViewDelegate in UIView
[英]UICollectionViewDelegate and UICollectionViewDataSource methods not called
我正在使用內部有UICollectionView
UITableViewCell
。 使用此結構,一切都可以完美運行:
class PostCell: UITableViewCell, UICollectionViewDelegate, UICollectionViewDataSource {}
但是,當我開始將UICollectionViewDelegate和UICollectionViewDataSource提取到另一個類時
class PostCell: UITableViewCell {
@IBOutlet weak var collectionView: UICollectionView!
public func populate(users: [User]) {
UsersManager(users: users, collectionView: collectionView)
}
}
public class UsersManager: NSObject, UICollectionViewDelegate, UICollectionViewDataSource {
private var users: [User]!
private var collectionView: UICollectionView!
init(users: [User], collectionView: UICollectionView) {
super.init()
let nib = UINib(nibName: UserCell.IDENTIFIER, bundle:nil)
collectionView.register(nib, forCellWithReuseIdentifier: UserCell.IDENTIFIER)
collectionView.delegate = self
collectionView.dataSource = self
collectionView.reloadData()
}
}
不調用委托方法。
collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
numberOfSections(in collectionView: UICollectionView) -> Int
我將collectionView傳遞給UsersManager()
。 我都打電話給:
collectionView.delegate = self
collectionView.dataSource = self
在UsersManager()
您認為這里的問題是什么?
class PostCell: UITableViewCell {
@IBOutlet weak var collectionView: UICollectionView!
var usersManager:UsersManager? // add this line.
public func populate(users: [User]) {
usersManager = UsersManager(users: users, collectionView: collectionView)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.