码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-06-29 18:34:14      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

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

    4. swift版本:

          func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {

       

              cell.separatorInset = UIEdgeInsetsZero

              cell.layoutMargins = UIEdgeInsetsZero

          }   转载自:http://jinqianchina.github.io/2016/03/22/UITableView%E4%BD%BF%E7%94%A8%E4%B8%AD%E7%9A%84%E4%B8%80%E4%BA%9B%E5%88%81%E4%B8%93%E9%97%AE%E9%A2%98%E6%80%BB%E7%BB%93/

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

标签:

原文地址:http://www.cnblogs.com/Jenaral/p/5627789.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!