1.自定义控件lineView
@property(nonatomic,strong)UIView*lineView;
并进行懒加载
-(UIView*)lineView{
if(_lineView==nil) {
_lineView= [[UIViewalloc]init];
_lineView.backgroundColor= [UIColorlightGrayColor]; //颜色可以自己调
_lineView.alpha=0.3; // 透明度可以自己调
}
return_lineView;
}
2.在创建的时间添加这个自定义控件(重写父类的init方法)
-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString*)reuseIdentifier{
if(self= [superinitWithStyle:stylereuseIdentifier:reuseIdentifier]) {
[self.contentViewaddSubview:self.lineView];
}
return self;
}
3.布局子控件
/**
*布局子控件
*/
- (void)layoutSubviews {
[superlayout Subviews];
//设置分割线的frame
CGFloatlineX =self.textLabel.frame.origin.x;
CGFloatlineH =1;
CGFloatlineY =CGRectGetHeight(self.frame) - lineH;
CGFloatlineW =CGRectGetWidth(self.frame) - lineX;
self.lineView.frame=CGRectMake(lineX,lineY, lineW, lineH);
}
4.添加bool属性来判断是否是最后一行
.h中添加属性
@property(assign,nonatomic)BOOLhidenLine;
.重写setter方法
- (void)setHidenLine:(BOOL)hidenLine{
_hidenLine= hidenLine;
self.lineView.hidden= hidenLine;
}
以上都是在自定义cell中进行的操作
下面来到tableview中
5.隐藏分割线
在tableview的viewdidload中设置
self.tableView.separatorStyle=UITableViewCellSeparatorStyleNone;
6.判断是否最后一行
在-(UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath 方法中判断是否最后一行
//判断是否是最后一行然后隐藏
cell.hidenLine= (indexPath.row== group.items.count-1); //通过组模型数组来拿到每组最后一行
Done
got it.