0

У меня есть UICollectionView и я использую этот код (в подклассе UICollectionViewCell), чтобы добавить рамку при выборе ячейки: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 не работает, если не выбран. Я вижу журналы для обоих вызовов.

Как я могу удалить эту границу?

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

ответ

0

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

0

Я сделал это таким образом (методы вызываются в методах делегатов 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"]]; 
} 

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

+0

На самом деле, это не полностью работает. Если ячейка скрыта (для прокрутки), она может потерять границу ... – Sucrenoir

Смежные вопросы