UICollectionViewCell удаляет границу при отмене выбора

У меня есть UICollectionView, и я использую этот код (в подклассе UICollectionViewCell), чтобы добавить границу при выборе ячейки:

- (void)isSelected{
    NSLog(@"selected");
    [self.layer setBorderColor:[UIColor colorWithRed:213.0/255.0f green:210.0/255.0f blue:199.0/255.0f alpha:1.0f].CGColor];
    [self.layer setBorderWidth:1.0f];
    [self.layer setCornerRadius:9.5f];
}

- (void)isNotSelected{
    NSLog(@"not selected");
    [self.layer setBorderColor:[UIColor clearColor].CGColor];
    [self setNeedsDisplay];
}

Он работает, когда ячейка выбрана, но id не работает, когда она не выбрана. Я вижу журналы для обоих вызовов.

Как убрать эту границу?

заранее спасибо


person Sucrenoir    schedule 16.09.2013    source источник


Ответы (2)


Вы пытались добавить подслой и удалить его на isNotSelected?

person Giles Williams    schedule 16.09.2013

Я сделал это так (методы вызываются в методах делегатов didSelect и didDeselect):

- (void)isSelected{
    [self.layer setBorderColor:[UIColor colorWithRed:213.0/255.0f green:210.0/255.0f blue:199.0/255.0f alpha:1.0f].CGColor];
    [self.layer setBorderWidth:1.0f];
    [self.layer setCornerRadius:9.5f];
}

- (void)isNotSelected{
    [self setNeedsDisplay];
}

- (void)drawRect:(CGRect)rect
{
    [self.layer setBorderColor:[UIColor clearColor].CGColor];
    [self.layer setBorderWidth:1.0f];
    [self.layer setCornerRadius:9.5f];
    [self.imageView setImageWithURL:[NSURL URLWithString:self.imgUrl] placeholderImage:[UIImage imageNamed:@"placeholder-avatar"]];
}

Я действительно понятия не имею, почему мое первое решение не работает...

person Sucrenoir    schedule 18.09.2013
comment
На самом деле, это не работает в полной мере. Если ячейка скрыта (по причинам прокрутки), она может потерять свою границу... - person Sucrenoir; 19.09.2013