Я работаю с UITableViewCell
, у которого есть UICollectionView
внутри. Все отлично работает, используя эту структуру:UICollectionViewDelegate и UICollectionViewDataSource методы, которые не называются
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()
Как вы думаете, это проблема?
где вы создаете экземпляр UserManager? у вас должен быть экземпляр UserManager – karthikeyan
Обновлен мой @karthikeyan. Спасибо за помощь. = D – benjtupas
Я подозреваю, что NSObject Class запросил у вас кодера и декодера, проверьте эту ссылку https://github.com/macelangelo/HorizontalCollectionViews . Ваша цель достигается таким же образом, используя UIView. – karthikeyan