最近项目中需要给UITableView设置一个类似于“已经到底部啦”的footview提醒,想都不想直接用代理方法

 (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section

自定义一个view返回给这个代理方法,然后实现另一个方法

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section

设置了footerview的高度,满心欢喜的跑项目,发现并不是我想要的,我想要的是footerview跟随着cell的滑动而滑动,当数据超过一屏幕时候,需要不显示,等滑动到底部的时候再显示出来。

网上各种说滑动的时候重新设置frame的方法,从内心里比较抵触这样做。。。

最后还是想到一个方式来解决这个问题,既然我不能直接用系统的footerview,那么我定义两个section总可以了吧,然后,返回tableview的section的时候返回2,在cellForRowAtIndexPath方法里先判断是哪个section,如果section是要显示footerview的那个分组时,返回一个之前定义好的view给它。然后运行程序,结果如预期一样

部分代码:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{return 2;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{if(indexPath.section==0)return 25+25+15+120;elsereturn 40;}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{if(section == 1)//footerreturn 1;if(tableView == self.courseListTableView){//待开始if(self.courseListDataArray.count == 0){[LCSPlaceholderView showOnView:tableView type:LCSPlaceholderViewType_Course withTapBlock:^{NSLog(@"无课程");}];}else{[LCSPlaceholderView removeFromSuperView:tableView];}return self.courseListDataArray.count;}else{//已完成if(self.courseFinishDataArray.count == 0){[LCSPlaceholderView showOnView:tableView type:LCSPlaceholderViewType_Course withTapBlock:^{NSLog(@"无课程");}];}else{[LCSPlaceholderView removeFromSuperView:tableView];}return self.courseFinishDataArray.count;}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{if(indexPath.section == 1){UITableViewCell *cell = [[UITableViewCell alloc] init];LCSCustomTableFooterView *footerView = [[LCSCustomTableFooterView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 40)];[cell.contentView addSubview:footerView];return cell;}static NSString *cellReuseID = @"cellReuseID";

tableview设置footer会悬停在屏幕下方相关推荐

  1. 移动端 fixed 固定按钮在屏幕下方,然后按钮被键盘顶上来...顶上来了有没有~

    在移动端 H5 页面开发中,我使用了 fixed 固定某个元素在屏幕的最下方, 这时点击输入框,接着非常非常自然地出现了元素被系统键盘顶起来的情况,如下图. 解决方案: 首先,给页面最外层包裹一层 d ...

  2. chrome android 导航,将 Chrome for Android 的地址栏移动到屏幕下方[Android]

    还记得以前 MyIE2.Opera 8 时代的浏览器,有不少人譬如我都喜欢将地址栏和标签页栏放置在浏览器窗口的下方.现在呢,好多浏览器都变成一成不变了,不仅是桌面浏览器,手机浏览器也是如此.但其实,在 ...

  3. Ubuntu18状态栏调整位置,放置在屏幕下方

    最近用到Ubuntu,关于将Ubuntu的状态栏放在屏幕下方,看到很多人说运行一串代码:gsettings set com.canonical.Unity.Launcher launcher-posi ...

  4. excel文档最下面被计算机框挡住,电脑excle数据栏?求电脑专家 电脑屏幕下方的任务栏把excel表格最下面那一栏挡住显示不出来了 自动求和数据看不到。。。...

    windows7的EXCEL中工具栏没数据分析选项怎么办? 这个和WIN7么关系啊.要用什么office版本.我用的是2010的,里面是有的. "Microsoft Office 按钮&qu ...

  5. 针对屏幕下方出现黑边的手机适配

    针对屏幕下方出现黑边的手机适配 最近公司应用安装一款华为手机出现了类似以下的情况: 但是看京东啊,淘宝都是正常的,点击下方"全屏显示"的按钮也能实现不显示下面的黑边,但是这是什么情 ...

  6. 在Android的 设置-显示 中增加控制屏幕旋转方向的选项

    在Android的 设置->显示 中增加控制屏幕旋转方向的选项 参考博文 实现目标 效果局限 代码实现 配置资源文件 界面搭建 功能实现 默认值修改 其他情况 结语 参考博文 Android-x ...

  7. 设置Windows10系统下电脑屏幕自动关闭的时间(只关闭屏幕,电脑主机不关机)

    通过电源和睡眠设置经过多长时间屏幕自动关闭

  8. 计算机桌面怎么全屏显示,电脑显示器如何设置全屏 把电脑屏幕调成满屏的方法有哪些...

    今天给大家带来电脑显示器如何设置全屏,把电脑屏幕调成满屏的方法有哪些,让您轻松解决问题. 现在很多人都使用电脑玩游戏,为了让游戏效果达到最好,很多人都会购买比较好的显示器,设置电脑全屏进行玩耍,下面是 ...

  9. 3km2引擎如何设置传奇sf公告在屏幕的哪个位置播放

    3km2引擎如何设置传奇一条龙sf公告在屏幕的哪个位置播放 大家好,今天为大家提供3km2引擎如何设置传奇一条龙公告在屏幕的那个位置播放的方法,这套3km2引擎如何设置传奇sf公告在屏幕的那个位置播放 ...

  10. 火狐浏览器如何设置书签栏显示在屏幕左侧?

    火狐浏览器如何设置书签栏显示在屏幕左侧? ctrl+B即可

最新文章

  1. 关于python中程序流程结构-四、python基础(程序目录结构规范)
  2. 实现键盘录入的第二种方式。。。。。
  3. 设备驱动,字符设备驱动、(总线)设备驱动模型、sysfs文件系统、平台设备驱动
  4. M斐波那契数列(HDU-4549)
  5. Spring AMQP RabbitMQ示例
  6. NeurIPS 2021 Spotlight | PCAN: 高效时序建模, 提升多目标追踪与分割性能
  7. ajax中get请求获取数据
  8. 谷歌修复另一枚已遭利用的 Chrome 释放后使用0day,细节未公开
  9. 30 万奖金等你来!第三届 Apache Flink 极客挑战赛暨 AAIG CUP 报名开始
  10. linux文件实时同步(rsync+inotiy)
  11. python科学计算的例子_Python科学计算:NumPy
  12. Win11的筛选键怎么关闭
  13. 物联网数据多又杂?好用的数据可视化服务来了
  14. 异步实现商品详情页查询
  15. [总结]视频质量评价技术零基础学习方法
  16. 月份对比_2020年5月份,四款主流游戏电脑配置横向对比,你会选择哪款呢?
  17. 阿里云OSS对象存储-图文详解
  18. 中国前10名的休闲服品牌企业信息化漫谈--S公司
  19. 很好用的壁纸网站源码分享,仅供学习,请勿商用。
  20. MySQL系列----创建函数

热门文章

  1. 区块链应用_资产证券化
  2. 【图像识别】基于计算机视觉实现自动报靶系统(重弹孔)含Matlab源码
  3. python constants_Python constants.SUCCESS属性代码示例
  4. 计算机网络的地址三类,计算机网络中有几种地址格式
  5. 微信小程序 java nodejs校园自动点餐系统
  6. 飞马(PEGASUS):Google最新的摘要汇总模型
  7. 剑指offer——链表题目集合(Python)
  8. Java学习笔记——十大经典排序算法总结
  9. 人工智能续写贝多芬生前未完成的《第十交响曲》【智能快讯】
  10. D. Lizard Era: Beginning