UITableViewCell点击或常亮时保持子控件的背景颜色

如题,实现此效果需要重写cell的点击和高亮方法来保持子控件的背景颜色
代码如下:
colorViews:记录需要保持背景颜色的views,可在子控件初始化后添加

NSArray *colorViews;         ///< cell高亮或点击状态时需要保持背景颜色的views
- (void)setSelected:(BOOL)selected animated:(BOOL)animated{
    
    if (self.colorViews && self.colorViews.count > 0) {
        NSMutableArray *colors = [NSMutableArray array];
        NSMutableArray *views = [NSMutableArray array];
        
        for (UIView *view in self.colorViews) {
            if (view.backgroundColor && ![view.backgroundColor isEqual:[UIColor clearColor]]) {
                [colors addObject:view.backgroundColor];
                [views addObject:view];
            }
        }
        
        [super setSelected:selected animated:animated];
        
        for (NSInteger i = 0; i < colors.count; i ++) {
            UIView *view = [views objectAtIndex:i];
            UIColor *color = [colors objectAtIndex:i];
            
            [view setBackgroundColor:color];
        }
    }else{
        
        [super setSelected:selected animated:animated];
    }
    
}

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated{
    
    
    if (self.colorViews && self.colorViews.count > 0) {
        NSMutableArray *colors = [NSMutableArray array];
        NSMutableArray *views = [NSMutableArray array];
        
        for (UIView *view in self.colorViews) {
            if (view.backgroundColor && ![view.backgroundColor isEqual:[UIColor clearColor]]) {
                [colors addObject:view.backgroundColor];
                [views addObject:view];
            }
        }
        
        [super setHighlighted:highlighted animated:animated];
        
        for (NSInteger i = 0; i < colors.count; i ++) {
            UIView *view = [views objectAtIndex:i];
            UIColor *color = [colors objectAtIndex:i];
            
            [view setBackgroundColor:color];
        }
    }else{
        [super setHighlighted:highlighted animated:animated];
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,019评论 3 119
  • 不是所有的付出都会有回报, 所有的努力亦不一定都会得到 自己想要的结果! 可是, 有时候重要的不是结局, 而是每一...
    孤独的朝圣阅读 166评论 0 0
  • 诺说想看杨丽萍舞蹈,平生第一次买了这么贵的票,1280,有点心疼,不过想了下,人生总要往前看,总要有所进步,尤其是...
    好菇凉啊光芒万丈阅读 244评论 0 0
  • NO·5 巨蟹座 不要问巨蟹座为什么会去爱,也绝不要怀疑巨蟹座对爱的忠诚度,他们是可以默默为爱人奉献的人,一旦爱上...
    星座的这一些事阅读 413评论 0 0
  • 就在刚才,父亲给我打了两个电话,我没接到。犹豫了一下,我还是打了个电话回去。心里五味杂陈的听着话筒里面传来一阵一阵...
    我的公主蒋雨果阅读 81评论 0 0