Альфа-свойство 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 - подобранная анимация, например приложение для iPhone
  • Добавление округленного угла и тени для UICollectionViewCell
  • Тень не отображается в ячейке iOS
  • Как изменить пространство между ячейками в UICollectionView?
  • Программно установить высоту подвыбора UIView внутри ячейки UICollectionViewController?
  • subView в UICollectionViewCell отображается неправильно при прокрутке UICollectionView
  • не может удалить вид вида: UICollectionElementKindCell с идентификатором
  • Как прослушивать пользовательские штрихи для UICollectionViewCell в iOS?
  • UICollectionView 3 столбчатая сетка, 1px пробел ??? (изображение включено)
  • Swift UICollectionViewCell Анимированный просмотр в случайном порядке при прокрутке
  • Расположение ячеек UICellView в быстрых
  • Interesting Posts

    В Xcode 4 iPhone Simulator не появляется

    Как использовать NSOperationQueue с NSURLSession?

    IOS: добавьте параметр @selector

    Расширение IOS Share: как читать заметки

    Как установить типы документов в XCode 4.2?

    Как передать переменные между контроллером представления, используя presentViewController в SDK для iOS?

    ионное приложение отлично работает на эмуляторе iOS 10.1, но ошибки при развертывании на устройство

    Функция переопределения

    NSArray объектов и литье

    Xcode с iOS – создание библиотеки таким образом, чтобы ее можно было легко запускать в режиме отладки, распространять, повторять

    Позиция фиксированная 100% не является шириной экрана, когда на странице присутствует более крупный div

    Как получить поддельные контакты в iOS Simulator?

    Имитировать 2-х пальцевое единственное нажатие на симуляторе

    Удалить цвет фона в UITableViewAccessory

    Кнопка Tableview получает index.row

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