UITableViewCell的使用

2018-03-05  本文已影响27人  huicuihui

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的高度

cell的背景色

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

上一篇下一篇

猜你喜欢

热点阅读