专栏首页陈满iOSiOS开发验证:取消UITableView的Footer自带的悬停效果

iOS开发验证:取消UITableView的Footer自带的悬停效果

需求:取消UITableView的Footer自带的悬停效果,但不是隐藏,还是要在表格最后显示footer。

1.方案验证
  • 背景是:当前VC的表视图是继承UITableViewController的自带的tableView,如果你不想修改样式,它默认的样式就是UITableViewStylePlain。这种情况会有header和footer悬浮的效果。如果你想取消它,那么可以两种方案,实现scroll代理,修改style样式。
  • 方案1,实现如下代理即可:
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (scrollView == self.tableView)
    {
        UITableView *tableview = (UITableView *)scrollView;
        CGFloat sectionHeaderHeight = 64;
        CGFloat sectionFooterHeight = 44;
        CGFloat offsetY = tableview.contentOffset.y;
        if (offsetY >= 0 && offsetY <= sectionHeaderHeight)
        {
            tableview.contentInset = UIEdgeInsetsMake(-offsetY, 0, -sectionFooterHeight, 0);
            
        }else if (offsetY >= sectionHeaderHeight && offsetY <= tableview.contentSize.height - tableview.frame.size.height - sectionFooterHeight)
        {
            tableview.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, -sectionFooterHeight, 0);
        }else if (offsetY >= tableview.contentSize.height - tableview.frame.size.height - sectionFooterHeight && offsetY <= tableview.contentSize.height - tableview.frame.size.height)
        {
            tableview.contentInset = UIEdgeInsetsMake(-offsetY, 0, -(tableview.contentSize.height - tableview.frame.size.height - sectionFooterHeight), 0);
        }
    }
}
2. 备份方案

对于继承UITableViewController,如果想更改tableview样式,请重写初始化方法:

- (instancetype)initWithStyle:(UITableViewStyle)style {
    return [super initWithStyle: UITableViewStyleGrouped];
}

另外,可以去掉头部间距

// 隐藏UITableViewStyleGrouped上边多余的间隔
self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, CGFLOAT_MIN)];
3. 提醒

每个人的情况可能不太一样,笔者这里的验证结果可能只针对特定情况,读者自行根据实际情况参考和判断。也可以在评论区留言写下你工程背景和验证情况。

4. 推荐阅读

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • iOS数据埋点统计方案(附Demo): 运行时Method Swizzling机制与AOP编程(面向切面编程)

    工程说明,首页Test1ViewController,其中有4个按钮,点击第一个按钮打印,第二个到第四个按钮分别跳转到Test2ViewController,T...

    陈满iOS
  • iOS设备唯一标识符关于UDID代替方案:基于UUID和SSKeychain生成唯一标识符新方法

    是一串由40位16进制数组成的字符串,用以标识唯一的设备,现在想通过代码获取是不可能的了,如果你想看看你设备的UDID,可以通过iTunes来查看。

    陈满iOS
  • iOS基础·属性的修饰词与setter的关系

    可以自己手动为实例变量在头文件 中声明setter、getter方法,并在实现文件中实现setter、getter方法。你也可以不声明不实现,但不要再企图调用s...

    陈满iOS
  • 「R」Pacman:你的 R 包管家

    pacman包是一个整合了基础包library相关函数的包,用于更方便地对R包进行管理。该包可以添加到.Rprofile以便于显式地指定该包的函数,增加工作效率...

    王诗翔呀
  • 新鲜出炉面试题(二)

    "What would you attempt to do if you knew you could not fail?—— Robert H. Schul...

    小闫同学啊
  • 网络安全实验室平台(脚本关)

    看到了一个好玩的平台————网络安全实验室,看起来对新手还是有帮助的,如果你有编程基础也可以看看脚本关哦!

    轩辕小子
  • 生产apollo搭建记录(五)

      搭建两个环境配置,dev和pro,但目前可用服务器限制,打算mysql用同一个,服务器分生产和测试

    老梁
  • spring开发_Annotation_注解

    http://www.cnblogs.com/hongten/gallery/image/112614.html

    Hongten
  • 从 Spring 开始,谈谈如何自学 Java 常用框架

    阿凯
  • 一日一技:pylint除了检查代码风格,还能做这件事情

    我们知道,Pylint 可以用来检查代码是否符合 PEP-8编码规范。但很少有人知道,Pylint 里面其实含有另外一个东西。它能做一件你想不到的事情。

    青南

扫码关注云+社区

领取腾讯云代金券