Сбой UICollectionView

Сбой UICollectionViewI создаю класс для collectionView и добавляю CollectionView в Viewcontroller для представления, как показано ниже.

 init(){

        let collectionViewLayout = UICollectionViewFlowLayout();
        super.init(frame: CGRect.zero, collectionViewLayout: collectionViewLayout)
        self.register(UICollectionViewCell.self, forCellWithReuseIdentifier: kCellIdentifier_SampleCollectionViewCell)
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }



    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

        return 10
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {


        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: kCellIdentifier_SampleCollectionViewCell, for: indexPath)
        cell.contentView.backgroundColor =  UIColor.brown
        return cell
    }

    func collectionView(_ collectionView: UICollectionView,
                        layout collectionViewLayout: UICollectionViewLayout,
                        sizeForItemAt indexPath: IndexPath) -> CGSize {

        return CGSize(width: collectionView.bounds.size.width - 16, height: 120)
    }
    func collectionView(_ collectionView: UICollectionView,
                        layout collectionViewLayout: UICollectionViewLayout,
                        minimumLineSpacingForSectionAt section: Int) -> CGFloat {

        return 8
    }

    func collectionView(_ collectionView: UICollectionView,
                        layout collectionViewLayout: UICollectionViewLayout,
                        minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
        return 0
    }

    func collectionView(_ collectionView: UICollectionView,
                        layout collectionViewLayout: UICollectionViewLayout,
                        insetForSectionAt section: Int) -> UIEdgeInsets {
        return UIEdgeInsets.init(top: 8, left: 8, bottom: 8, right: 8)
    }

Затем я перенес этот collectionView в контроллер MainView, инициализировал и установил делегатов, как показано ниже.

open lazy var sampleeCollectionView: SampleCollectionView = { [unowned self] in
    let collectionview = SampleCollectionView()
    collectionview.translatesAutoresizingMaskIntoConstraints = false
    collectionview.dataSource = self
    collectionview.delegate = self
    return collectionview
}()

В настоящее время приложение дает сбой, любой может предложить, как мы можем решить. Здесь я добавляю источник данных и делегирую в viewController, который я представляю. Если я изменю это на класс CollectionView, он будет работать. Можно ли сохранить это в месте инициализации

Хотите включить фактическое сообщение об ошибке?

mag_zbc 06.03.2019 11:30

Добавьте также журнал сбоев или просто фразу с завершением работы приложения из-за и т. д.

Abu Ul Hassan 06.03.2019 11:32

Пожалуйста, добавьте журнал сбоев для получения дополнительной информации

ketaki Damale 06.03.2019 11:42
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
3
98
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы используете раскадровку и не зарегистрировали Xib в своей ячейке или не создали прототип в раскадровке с идентификатором, который вы пытаетесь использовать повторно.

Учитывая, что у вас есть метод инициализации, он, вероятно, не вызывается, поэтому я предполагаю, что проблема в раскадровке.

Нет, я не использую раскадровку, я использую ограничения

Ruban4Axis 06.03.2019 12:09

В этом случае похоже, что ваш метод регистрации не запускается, поместите точку останова, чтобы увидеть, вызывается ли метод регистрации до cellForItemAtIndexPath.

Adis 06.03.2019 12:11

Добавьте self.delegate = self и self.dataSource = self в свой метод инициализации.

Adis 06.03.2019 12:28

Другие вопросы по теме