Я испытал некоторое действительно странное поведение с UILabels в UICollectionViewCell сегодня, и я надеюсь, что один из вас, ребята, может пролить свет на это.Непрозрачный UILabel в UICollectionViewCell имеет странное поведение рендеринга
Я не могу показать вам код или полные скриншоты, но я попытаюсь объяснить и проиллюстрировать его как можно лучше;
У меня есть UICollectionView, который имеет несколько ячеек и поддерживает горизонтальную прокрутку. В ячейках у меня есть ярлык, который я установил на - (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath
и сниму на - (void)prepareForReuse
.
Кажется довольно нормальным, и у меня даже есть реализация точно так, как это, что работает без какой-либо странности.
Теперь, по соображениям производительности, я установил непрозрачность UILabel ON в Interface Builder. Когда я прокручивать пару раз, я получаю, чтобы увидеть это:
Всякий раз, когда я повернул непрозрачный OFF в Interface Builder, я получаю, чтобы увидеть это:
У меня есть много опытом с UITableViews и UICollectionViews (и повторного использования, и т.д.), но нет никакого способа, я могу объяснить такое поведение правильно ...
похоже, что вы складываете две метки. –
@JonathanCichon как? Я поместил ярлык через IB и повторно использовал его (как описано). Даже если бы я был укладкой, как непрозрачность ON/OFF будет причиной этого (я бы даже подозревал, что это будет наоборот, если это так). – Jake
если вы используете opague (а не альфу), контекст метки не будет очищен перед перерисованием. Таким образом, вы можете увидеть предыдущий текст за новым текстом. Opague использует только sens с реалистичными реализациями drawRect, которые используют преимущества старого контекста или в любом случае заполняют весь экран. –