今日、UICollectionViewCell の UILabels で非常に奇妙な動作を経験しました。皆さんの 1 人がこれに光を当ててくれることを願っています。
コードや完全なスクリーンショットをお見せすることはできませんが、可能な限り説明し、図解するように努めます。
複数のセルがあり、水平スクロールをサポートする UICollectionView があります。セルには、設定し
- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath
てクリアするラベルがあり- (void)prepareForReuse
ます。
これはごく普通のことのように思えますが、これとまったく同じように動作する実装も持っています。
ここで、パフォーマンス上の理由から、Interface Builder で UILabel の不透明度をオンに設定しました。数回スクロールすると、次のように表示されます。
Interface Builder で不透明をオフにすると、次のように表示されます。
UITableViews と UICollectionViews (および再利用など) には多くの経験がありますが、この動作を適切に説明する方法はありません...