UITableView 补全cell分割线

UITableView是最常用的控件,也是要求必须要求掌握的基础控件

#define SIZE_WIDTH [UIScreen mainScreen].bounds.size.width

#define SIZE_HEIGHT [UIScreen mainScreen].bounds.size.height

1.代码创建

UITableView*SELFTableview=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, SIZE_WIDTH,SIZE_HEIGHT )];

SELFTableview.delegate=self;

SELFTableview.dataSource=self;

[self.view addSubview:SELFTableview];


还有都是到要把代理方法引用@interface : UIViewController

2.其还有两个必须实现的代理方法

(1)- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;

(2)- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

(这样我们就简单完成了UITableView的代码创建)

3.这时候我们就用tableview来实现我们的需求(自定义也好,直接用也行)

那么问题来了,UITableViewCell的cell之间会默认带一条分割线(毕竟是表吗,肯定要有线的)但是,他自带的线条不顶头,在左边总会有20左右px。那么怎么补全呢?我在这里简单提供两种解决方案

1>

直接隐藏系统的

分割线,自己写一个高度为1px,宽度为屏幕宽度的细线来代替(还可以自定义颜色多好)

2>

我们用系统提供的一个方法我这边就是用的这个方法(直接拷贝!直接用)

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPat{

if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {

[cell setLayoutMargins:UIEdgeInsetsZero];

}

if ([cell respondsToSelector:@selector(setSeparatorInset:)]){

[cell setSeparatorInset:UIEdgeInsetsZero];

}

if([cell respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)]){

[cell setPreservesSuperviewLayoutMargins:NO];

}

}

你可能感兴趣的:(UITableView 补全cell分割线)