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

  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调用)

    效果图:


    UITableView使用中的一些刁专问题总结_第1张图片
    Mou icon
    UITableView使用中的一些刁专问题总结_第2张图片
    Mou icon

你可能感兴趣的:(UITableView使用中的一些刁专问题总结)