博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于UITableView Grouped 头部和尾部的空白留于
阅读量:4350 次
发布时间:2019-06-07

本文共 1263 字,大约阅读时间需要 4 分钟。

由于UITableView的Plain模式时,头部会悬停在界面上,当你需要headerView跟随着UITableView一起移动时,最好还是使用Grouped。虽然有使用UIScroViewDelegate的方法实现Plain模式下不悬停,

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {    CGFloat sectionHeaderHeight = 40;    if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) {        scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);    } else if (scrollView.contentOffset.y>=sectionHeaderHeight) {        scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);    }}

但是,是设置contentInset毕竟还是有缺陷,而且没法消除尾部的悬停。所以根据设计的需求,还是使用了Grouped模式。

使用Grouped模式时,出现的问题,section与section之间默认就有空白,直接调用UITableView的dataSource方法,headerForHeight和footerForHeight,return 0是没有用的,上网找了一下,需要设置 

        myTableView.sectionHeaderHeight = 0.0

        myTableView.sectionFooterHeight = 0.0

先消除section于section之间的空白,再调用 headerForHeight和footerForHeight去返回需要自己定义的headerView和footerView。

最后还发现尾部只用有一段留白,网上各种说

        self.automaticallyAdjustsScrollViewInsets = false

        self.edgesForExtendedLayout = .None

 ,但是基本上没什么卵用,最后用这一句消除了尾部的空白:

        tableView.tableFooterView = UIView(frame: CGRectMake(0,0,self.view.width(),0.001))

或者,在footerForHeight返回return 0.001,返回0是没用的,只有return 0.001

 

以上测试为XCODE 7.1 , IOS 8.0以上

 

转载于:https://www.cnblogs.com/swiftpang/p/4997727.html

你可能感兴趣的文章
Mybatis JdbcType与Oracle、MySql数据类型对应列表
查看>>
Sublime Text 3 安装Go语言相关插件gosublime
查看>>
linux 测试端口是否可通
查看>>
一元算数运算符----------(+,-)
查看>>
Hive记录-Hive调优
查看>>
DEDECMS为文章添加NEW标志图片
查看>>
剑指 offer 面试题31 连续子数组的最大和(动态规划)
查看>>
电子商务渠道揭秘
查看>>
JS获取当前完整的url地址以及参数的方法
查看>>
Python初学
查看>>
numpy linalg.norm
查看>>
【UOJ】#273. 【清华集训2016】你的生命已如风中残烛
查看>>
【NOI2015】品酒大会
查看>>
内部类单例模式,
查看>>
opensuse13.1 安装 SqliteMan
查看>>
念初三生活
查看>>
zbb20180827 java获取html内容
查看>>
node处理get和post请求
查看>>
【JAVA集合详解】LinkedList
查看>>
面向 例题
查看>>