UICollectionViewCell在选择时使字体变为粗体并在取消选择时使其成为常规 - 内存占用

时间:2015-11-21 06:14:39

标签: ios uicollectionviewcell didselectrowatindexpath

当选择一个单元格时,子类方法会覆盖 setSelected:

查看控制器代码

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
    [collectionView selectItemAtIndexPath:indexPath animated:YES scrollPosition:UICollectionViewScrollPositionNone];
}

-(void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath{
    [collectionView deselectItemAtIndexPath:indexPath animated:YES];
}

CollectionView子类方法

-(void)setSelected:(BOOL)selected{
    [super setSelected:selected];
    if(self.isSelected){


        self.myLabel.font = [UIFont boldSystemFontOfSize:10.0];
    }else{
        self.myLabel.font = [UIFont systemFontOfSize:10.0];
    }
}

我也在尝试更改textcolor。所以,就像每次我选择新的 UIFont 对象一样,如果设置文本颜色(某些自定义UIColor),也会创建新对象。或者有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

视图控制器代码是冗余的。系统将自动执行所有这些操作。

关于创建UIFont对象,开销很小,您无需担心。