@PavelTango

CollectionView как создать/отредактировать ячейки в storyboard?

Доброго дня! Пытаюсь в разработку на iOS, застрял на одном из основных элементов дизайна - collectionView, создал в сториборде саму collectionView, несколько ячеек, отредактировал их так, как мне нужно, добавил в них изображения, и всё бы ничего, но после запуска приложения - ячейки не отображаются. Поискав проблему в интернете не нашёл нужного мне ответа, все пишут о том, как создавать/редактировать ячейки программно. Собственно сам вопрос, можно ли вообще создать и наполнить ячейки без кода, просто в сториборде?
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 2
briahas
@briahas
ObjC, Swift, Python
можно ли вообще создать и наполнить ячейки без кода, просто в сториборде?

Конечно можно.

А вот почему у вас не отображаются ячейки - это надо смотреть код. Видящих тут не бывает.
Хотите - найдите меня в телеге (briahas) , сможете расшарить экран, разберем в реальном времени.
Ответ написан
Невозможно установить проблему не видя ваш код, но могу предположить, с чем может быть проблема.

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

То есть Вы в сториборде располагаете элементы так, как вам нужно, и обязательно присваиваете ячейке идентификатор, например "item", и, желательно, указываете кастомный класс.

После этого, у вас в вашем CollectionViewController есть метод
func collectionView(_ collectionView: UICollectionView,  cellForItemAt indexPath: IndexPath) -> UICollectionViewCell


Этот метод будет конфигурировать ячейки, как мы видим из метода, он должен вернуть объект "UICollectionViewCell"
В нем нам необходимо создать ячейку с указанным в сториборде идентификатором, и прокастить до нужного класса, если мы его создавали.
К примеру мы поставили идентификатор "item" и класс "CustomCell"
func collectionView(_ collectionView: UICollectionView,  cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
     let cell = collectionView.dequeueReusableCell(withReuseIdentifier "item",  for: IndexPath) as! CustomCell

     // теперь cell у нас нужная нам ячейка, настройки IBOutlets и IBActions у нас в ее кастомном классе, если 
         необходимо можем тут настроить какую нибудь логику. После настройки логики, нам нужно вернуть из 
         метода эту ячейку

     return cell
}


Теперь коллекция при запуске будет конфигурировать наши ячейки по указанному идентификатору, с указанным классом. Если вы все настроили правильно, то у вас должны отобразиться необходимые ячейки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы