1

今日、UICollectionViewCell の UILabels で非常に奇妙な動作を経験しました。皆さんの 1 人がこれに光を当ててくれることを願っています。

コードや完全なスクリーンショットをお見せすることはできませんが、可能な限り説明し、図解するように努めます。

複数のセルがあり、水平スクロールをサポートする UICollectionView があります。セルには、設定し - (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPathてクリアするラベルがあり- (void)prepareForReuseます。

これはごく普通のことのように思えますが、これとまったく同じように動作する実装も持っています。

ここで、パフォーマンス上の理由から、Interface Builder で UILabel の不透明度をオンに設定しました。数回スクロールすると、次のように表示されます。

奇妙なレンダリング動作

Interface Builder で不透明をオフにすると、次のように表示されます。 ここに画像の説明を入力

UITableViews と UICollectionViews (および再利用など) には多くの経験がありますが、この動作を適切に説明する方法はありません...

4

1 に答える 1

0
yourLabel.backgroundColor = UIColor.whiteColor()

UILabel のデフォルトの背景色はクリア カラーです。ラベルを不透明に設定する場合は、背景色も不透明に設定する必要があります。

于 2016-03-19T10:28:14.787 に答える