首页 > 其他 > 详细

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

时间:2016-06-29 18:33:14      阅读:191      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!