UICollectionViewCell在取消选择时删除边框

时间:2013-09-16 14:38:05

标签: ios objective-c border uicollectionview 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不起作用。 我可以看到两个电话的日志。

如何删除此边框?

提前谢谢

2 个答案:

答案 0 :(得分:0)

您是否尝试过添加子图层,并在isNotSelected上删除它?

答案 1 :(得分: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"]];
}

我真的不知道为什么我的第一个解决方案无效...