美文网首页
UITableViewCell的使用

UITableViewCell的使用

作者: huicuihui | 来源:发表于2018-03-05 17:46 被阅读27次

    cell的使用用

    很相近的几种cell,控件都一样,只是约束不一样

    如下图1和图2的区别:


    图1.png
    图2.png

    可以在控制器中注册cell的重用标识中去区分。
    然后在cell中去根据重用标识去设置不用的约束和设置数据。

    - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier;
    

    另一种情况:

    image.png

    类似今日头条, 有几种cell。但是有一个功能就是每一种cell都可能被置顶,添加置顶标记。置顶标记的样式几种cell都是一样的,例如字体大小,颜色等。
    几种cell有相同的地方,可以创建一个基础cell,多种cell都继承这个基类cell。
    还有一种情况:文章类的cell, 使用系统自带的点击变灰效果不太好, 颜色太深,修改点击的效果,就可以在基类中去修改。

    cell点击效果

    取消cell的点击效果
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    

    设置cell的点击效果为显示一张背景图片:

    self.selectedBackgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_selection_state"]];
    

    cell点击没效果的情况:

    self.selectedBackgroundView = [[UIView alloc] init];
    

    修改cell中的图片和文字点击效果

    [self.icon setHighlightedImage:[UIImage imageNamed:@"icon_lesson_sel"]];
    
    self.titleLabel.highlightedTextColor = [UIColor colorWithHex:0xffd579];
    
    - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
        [super setSelected:selected animated:animated];
    
            self.icon.highlighted = selected;
            self.titleLabel.highlighted = selected;
    
    }
    

    分割线设置

    去掉cell分割线
    1、cell分割线顶到头

    cell.separatorInset = UIEdgeInsetsMake(0, -55, 0, 0);
    

    2、 去掉某一行的cell分割线:
    原理是:使指定的这一行的cell分割线向左或向右偏移一个屏幕的距离,这样这条分割线就已到了屏幕外也就看不到了。

    cell.separatorInset = UIEdgeInsetsMake(0, 0, 0, [UIScreen mainScreen].bounds.size.width);
    或
    cell.separatorInset = UIEdgeInsetsMake(0, [UIScreen mainScreen].bounds.size.width, 0, 0);
    

    3、设置整个tableView的所有cell分割线样式

    //去掉整个tableView的所有cell分割线
    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    
    //设置整个tableView的所有cell分割线的长度
    [self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 15, 0, 0)];
    
    //设置分割线的颜色
    self.tableView.separatorColor = [UIColor redColor];
    

    设置cell的数据和cell的高度

    • (void)setDataWithModel:(<#model类#> *)model;
    • (CGFloat)heightForModel:(<#model类#> *)model;

    cell的背景色

    设置某些cell的背景颜色:
    cell.contentView.backgroundColor = [UIColor clearColor];这个不管用。
    应该使用如下设置:
    cell.backgroundColor = [UIColor clearColor];

    相关文章

      网友评论

          本文标题:UITableViewCell的使用

          本文链接:https://www.haomeiwen.com/subject/pughfftx.html