Альфа-свойство UICollectionViewCell не вступает в силу до перезагрузки?

Если я установил свойство alpha в cellForItemAtIndexPath следующим образом …

 func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { let cell: UICollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("CGPathCell", forIndexPath: indexPath) as UICollectionViewCell // Prepare cell cell.alpha = 0.5 cell.setNeedsDisplay() return cell } 

… ячейки, которые изначально появляются, непрозрачны (альфа 1.0). Если я прокручу, появятся «новые» (повторно используемые) ячейки, ожидающие альфа-значение. Если я вернусь назад к началу, «оригинальные» ячейки (которые стали непрозрачными) теперь также имеют ожидаемое значение альфа.

Почему значение альфа-значения не задано при первоначальной загрузке?

Дополнительные попытки, которые не работают:

  1. Добавив это в делегат, я получаю тот же результат:

     func collectionView(collectionView: UICollectionView, willDisplayCell cell: UICollectionViewCell, forItemAtIndexPath indexPath: NSIndexPath) { cell.alpha = 0.5 } 
  2. Добавление этого в cellForItemAtIndexPath :

     let attrs = UICollectionViewLayoutAttributes(forCellWithIndexPath: indexPath) attrs.alpha = 0.5 cell.applyLayoutAttributes(attrs) 

2 Solutions collect form web for “Альфа-свойство UICollectionViewCell не вступает в силу до перезагрузки?”

Я считаю, что это происходит, потому что Apple делает некоторую специальную внутреннюю обработку с ячейкой как часть UICollectionView . Если вы установите альфа в contentView ячейки, альфа сохраняется, как ожидалось.

UICollectionViewCell документирует вид намека на это:

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

Если у вас есть backgroundView или selectedBackgroundView , вам нужно будет установить их альфы отдельно.

Некоторое время назад у меня была проблема simliar с изменением размера pdf, это было, вероятно, то же самое. Я решил это следующим образом: каждый раз, когда нужно было изменить размер pdf, setNeedsDisplay не работает, поэтому я создал ViewController, который альфа: 0 и вызовет неанимированный segue для этого контроллера представления, так что ясный контроллер представления был над контроллером представления, который я хотел обновить, после этого я сразу же отклонил новый контроллер представлений, поэтому pdf был обновлен до нового размера. Также этот вопрос довольно старый, может быть, это поможет вам решить вашу проблему.

  • UICollectionView: различные элементы размера не рассчитываются для повторно используемых элементов
  • Недопустимый фрейм Subview при создании UICollectionViewCell
  • ios - горизонтальная прокрутка коллекции с изображениями
  • Почему выход UICollectionViewCell равен нулю?
  • Перезагрузить UICollectionViewCell, у которого есть изображение
  • Как сказать, когда UICollectionViewCell исчезает
  • Выполните Segue из UICollectionViewCell Button, отличную от Cell Click
  • Ячейка исчезает после прокрутки 2 - 3 раза в UICollectionView
  • Создайте подкласс UICollectionViewCell с помощью xib
  • UICollectionView cellForItemAtIndexPath - nil
  • Создать UICollectionViewCell программно без использования ниба или раскадровки
  • Interesting Posts

    Как запросить пользователя для ввода текста в окне «Предупреждение»

    Как скрыть клавиатуру при касании UITableView в iOS Obj-C

    Как использовать панель видимости с UISearchController

    Совместное использование iCloud среди других пользователей

    Пакет недействителен. Новые приложения и обновления, представленные в App Store, должны быть созданы с помощью общедоступных

    GoogleMaps не является dylib, ошибка времени компиляции с файлом pod в последней версии

    Каков наилучший способ отключить перекрестные затухания в UICollectionView / UICollectionViewLayout, который вращает или меняет изменения?

    Как я могу воссоздать этот шрифт iOS с тенью?

    Как установить пробел между символами и строками в UILabel

    Как создать базу данных sqlite для использования с основными данными?

    Добавление массива для перемещения группы изображений в цикл for в Swift: SpriteKit

    Xcode 6 Interface Builder «не может открыть скомпилированные наконечники», FiksuSDK

    Каков «правильный» способ обработки изменений ориентации в iOS 8?

    Приложение iOS Offline и синхронизация

    XCode 4 загружает mac os x 10.6 core library?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.