Детали - это не детали. Они создают дизайн.

Играть с Коллекционными представлениями очень весело и сложно. Одна из вещей, с которыми я столкнулся, - это использование градиентов с представлениями коллекций.

Добавить градиент к UICollectionView или UICollectionViewCell так же просто, как добавить его к любому другому виду. Мы подробно обсуждали это в предыдущей статье.

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

Итак, вам это сложно? Давайте посмотрим шаг за шагом, как этого добиться.

Предварительные условия

Прежде чем мы начнем кодировать, давайте посмотрим, что у нас уже есть 🧐 и как мы можем использовать это для решения нашей задачи.

  1. Добавление градиента к виду. В предыдущей статье мы подробно обсуждали, как заставить это работать.
  2. Изменение свойств UICollectionViewCell’s в зависимости от состояния выбора - Здесь мы уже обсуждали, как isSelected обрабатывает это.

Комбинируя вышеупомянутые 2, теперь нам остается «добавить градиент к ячейке, когда она выделена, и удалить ее, когда она не выделена». Мы уже на полпути, просто нужно поместить наши знания в нужное место. 🎯

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

Давай закодируем ...

Наш обычай UICollectionViewCell должен реализовывать 2 вещи,

  1. градиент, который мы хотим применить к каждой ячейке
  2. Переопределите isSelected для обработки изменений состояния выделения, т. Е.

Вот и все. Это единственный код, который нам нужен, чтобы все заработало.

Образец проекта

Вы можете скачать образец проекта здесь.

промо акции

Не забудьте прочитать другие мои статьи:

  1. Все о Codable в Swift 4
  2. Все, что вы всегда хотели знать об уведомлениях в iOS
  3. Кодирование для iOS 11: как перетаскивать в коллекции и таблицы
  4. Все, что вам нужно знать о расширениях Today Extensions (Widget) в iOS 10
  5. Выбор UICollectionViewCell стал проще… !!

Не стесняйтесь оставлять комментарии, если у вас есть сомнения.