UITableView 补全cell分割线

作者: DoubleLine | 来源:发表于2017-03-16 14:07 被阅读43次

    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<UITableViewDelegate,UITableViewDataSource>

    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分割线

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