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

    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/

时间: 2024-08-03 11:31:13

UITableView使用中的一些刁专问题总结的相关文章

那些我后知后觉的事

在高三的冲刺阶段,有人向老师请教,我们该怎样复习,才能考个好成绩,我正好路过,我记得老师的回答是系统的对知识进行梳理.但当时,我还只会不停的做题.结果读了二本大学,差一本25分. 大学的每一次考试,我都系统的把学过的知识从头到尾复习一到三遍,而不重做题的数量.因为我知道考试都不难,有些还是原题.关键是我要理解原理,知步骤,算对就可以了.因此每一次考试我的成绩都很好. 大学毕业找工作,因为不知道用人单位要怎样去选拔人才.就这样盲目投简历,盲目参加宣讲会,盲目去面试,结果是笔试的题目都不会.但其实早

ios UISearchDisplayController 实现 UITableView 搜索功能

UISearchDisplayController 是苹果专为 UITableView 搜索封装的一个类. 里面内置了一个 UITableView 用于显示搜索的结果.它可以和一个需要搜索功能的 controller 关联起来,其它的像原 TableView 和搜索结果 TableView 的切换, mask 的显示等等都 封装好了,使用起来非常非常的简单.特别是要实现全屏搜索时使用最多. 全屏搜索的意思是如果你用了  NavigationBar 当点击搜索框时 TableView 会自动弹上去

专家教你用镜像第一期:主机宝镜像使用详解!云服务器代金券等你拿~!!

专家教你用镜像第一期:主机宝镜像使用详解 (分分钟帮你搞定云服务器环境部署) 优势强大的主机宝镜像(Linux/Windows): 集成ASP..NET.Nginx1.4.7.PHP5.2.17/PHP5.4.24.MySQL5.1.73.PHPMyAdmin4.0.10.PureFtpd1.0.36.Memcached1.4.18.FTP等基础软件 内置主机板控制面板,便捷管理和备份站点.数据库.FTP等. 已在阿里云镜像市场持续热卖40天(目前限时免费噢)!小编特邀主机宝专家,总结用户在使用

如何写好一个UITableView

本文是直播分享的简单文字整理,直播共分为上.下两部分. 第一部分: 优酷 :http://v.youku.com/v_show/id_XMTUzNzQzMDU0NA%3Cmark%3E.html Or YouTube:https://youtu.be/hPR67T9mbsY 第二部分: 优酷:http://v.youku.com/v_show/id_XMTU3OTgyMjQwNA%3C/mark%3E.html Demo 地址:KtTableView https://github.com/bes

IOS开发之UITableView的奇技

作者:Biaoac age:保密 sex:直男 性格:低调沉稳,乖张内涵 博客背景:之前一直在使用UITableView,但是一直都只是初识,后来在不断的使用中找到了很多之前没有在意的东西,遂整理出来,当然,有很多还是看别人的博客中提到的点,我把他重踩一遍: 1.点击的时候显示选中状态,但状态一直村在,必须在点击下一个的时候取消选中状态 点击cell的时候调用 - (void)tableView:(UITableView )tableView didSelectRowAtIndexPath:(N

iOS-如何写好一个UITableView

如何写好一个UITableView 字数5787 阅读3745 评论25 喜欢69 本文是直播分享的简单文字整理,直播共分为上.下两部分.第一部分:优酷 Or YouTube,第二部分:优酷 Demo 地址:KtTableView 如果你觉得 UITableViewDelegate 和 UITableViewDataSource 这两个协议中有大量方法每次都是复制粘贴,实现起来大同小异:如果你觉得发起网络请求并解析数据需要一大段代码,加上刷新和加载后简直复杂度爆表,如果你想知道为什么下面的代码可

学生专享:阿里云面向学生的云翼计划(阿里云学生机)介绍

概述 现在国内知名大牌云服务商(阿里云)对学生都是很优惠的,阿里云学生服务器,阿里云也推出了9.5元购买云服务器的优惠活动,是一款固定的优惠套餐,包含特价云服务器,但是好多学生却不知道在哪里申请,需要什么条件,流程是怎么样的,下面给大家做个介绍 云翼计划是阿里云校园扶持计划,24岁以下或拥有学信网认证信息即可享优惠产品.创业扶持等多项权益哦!包括:专属云服务器产品优惠.校园产品使用攻略等. 阿里云学生机官网地址:https://promotion.aliyun.com/ntms/act/camp

iOS开发——项目实战总结&UITableView性能优化与卡顿问题

UITableView性能优化与卡顿问题 1.最常用的就是cell的重用, 注册重用标识符 如果不重用cell时,每当一个cell显示到屏幕上时,就会重新创建一个新的cell 如果有很多数据的时候,就会堆积很多cell.如果重用cell,为cell创建一个ID 每当需要显示cell 的时候,都会先去缓冲池中寻找可循环利用的cell,如果没有再重新创建cell 2.避免cell的重新布局 cell的布局填充等操作 比较耗时,一般创建时就布局好 如可以将cell单独放到一个自定义类,初始化时就布局好

iOS开发tips-神奇的UITableView

概述 UITableView是iOS开发中使用频率最高的UI控件,在前面的文章中对于UITableView的具体用法有详细的描述,今天主要看一些UITableView开发中的常见一些坑,这些坑或许不深,但是如果开发中注意不到的话往往比较浪费时间. 神奇的section header 事情的起因是一个网友说要实现一个类似下图界面,但是不管是设置sectionHeaderHeight还是代理方法中实现func tableView(_ tableView: UITableView, heightFor