美文网首页iOS DeveloperiOS开发技术分享IOS
UITableView使用中的一些刁专问题总结

UITableView使用中的一些刁专问题总结

作者: 蒲公英少年 | 来源:发表于2016-03-22 15:37 被阅读295次
  1. tableview中cell的系统分隔线问题(分隔线顶满或者缩短)

     //tableview代理方法,设置系统cell的分隔线
     -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
     {
         if (0 == indexPath.section) {
             if (0 == indexPath.row) {
                 //cell分隔线缩短50
                 if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
                     [cell setSeparatorInset:UIEdgeInsetsMake(0, 50, 0, 0)];
                 }
             }else {
                 //cell分割线顶满(分隔线加长)
                 if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
                     [cell setSeparatorInset:UIEdgeInsetsZero];
                 }
                 if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
                     [cell setLayoutMargins:UIEdgeInsetsZero];
                 }
             }
         }else if (1 == indexPath.section) {
             if (0 == indexPath.row) {
                 if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
                     [cell setSeparatorInset:UIEdgeInsetsZero];
                 }
                 if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
                     [cell setLayoutMargins:UIEdgeInsetsZero];
                 }
             }
         }else if (2 == indexPath.section){
             if (0 == indexPath.row) {
                 if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
                     [cell setSeparatorInset:UIEdgeInsetsMake(0, 50, 0, 0)];
                 }
             }
         }
     }
    
  2. tableview下面出现多余的cell(有分割线影响界面)

     //隐藏多余cell
     -(void)setExtraCellLineHidden: (UITableView *)tableView
     {
         UIView *view = [UIView new];
         view.backgroundColor = [UIColor clearColor];
         [tableView setTableFooterView:view];
     }
    

    例如:
    你要隐藏某个UITableView里面多余的cell
    UITableView *tabelDemo = [[UITableView alloc] init];
    [self.view addSubview:tabelDemo];
    然后直接调用就可以了
    [self setExtraCellLineHidden:tabelDemo];

  3. tableview的顶部高度多出的一部分(原因我猜有可能是因为系统自动布局计算了状态栏的高度)

    //去掉tableview的顶部高度多出的一部分
    self.edgesForExtendedLayout = UIRectEdgeNone;(这里self指当前控制器,只需要在viewDidl
    Load调用)

    效果图:


    Mou icon Mou icon

相关文章

网友评论

    本文标题:UITableView使用中的一些刁专问题总结

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