をオーバーライドするカスタムセルを含むテーブルビューがありますsetSelected:animated:
。選択されたセルを含むテーブルをスクロールすると、選択されたセルの外観が、選択された状態と選択されていない状態の奇妙な組み合わせになることがあります。
私のsetSelected:animated:
方法は次のようになります。
-(void)setSelected:(BOOL)selected animated:(BOOL)animated
{
if (selected == self.selected)
return;
CGFloat destinationAlpha = selected ? 1.0 : 0.0;
NSTimeInterval duration = animated ? 0.25 : 0.0;
for (UIView *view in self.topView.subviews)
{
if (![self.viewsToLeaveBackgroundAlone containsObject:view])
view.backgroundColor = [UIColor clearColor];
}
[UIView animateWithDuration:duration animations:^{
self.selectedTopViewBackground.alpha = destinationAlpha;
}animations completion:^(BOOL finished) {
if (!selected)
{
for (UIView *view in self.topView.subviews)
{
if (![self.viewsToLeaveBackgroundAlone containsObject:view])
view.backgroundColor = self.topView.backgroundColor;
}
}
}];
[super setSelected:selected animated:animated];
}
ログとブレークポイントを追加しました。右のセルに正しい選択状態が送信されています。何がうまくいかないのですか?