出现问题的界面如下,并附有大致介绍:

而我想做的界面应该是自定义的headerView和tableView是一起滑动的,而不是headerView在tableView滑动的时候始终在顶部位置,而且tableview恰好只有一个headerView,最终界面图如下面:

事先说明,我这里项目是纯代码编写,在网上也找了很多资料有关于利用xib,storyBoard出现的这种问题,借鉴了很多网上的方法,都不管用,最后折腾了很久,总算是没白忙活,现将解决方法分享下,希望对出现这种情况的有所帮助。

为了更好的比较,我这里先附上原先的核心代码,错误的演示:

为了解决上面的问题,我尝试了设置self.automaticallyAdjustsScrollViewInsets=NO;但是还是不管用,所以排除了这种方法。

最后看到有两种解决方法:

1.将tableView的样式换成UITableViewStylePlain就好了

_contactTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 60, clientRect.size.width, clientRect.size.height-115) style:UITableViewStylePlain];

但是这并满足不了自己的要求,tablewView是可以单独滑动的,headerView一直停留在顶部。所以这里的样式必须是

UITableViewStyleGrouped,于是最后用到的是下面的第二种方法。

2.当tableView的样式是UITableViewStyleGrouped时,采用下面的方法

1)创建自定义的headerView,105行的方法就不详细展示了

2)之后最重要的是,下面的两个方法不需要添上

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

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

3)最后明白我以前用的是2)中的方法常见section里的headerView,这就会导致用UITableViewStyleGrouped时系统会默认让tableview下沉,我这里用的1)中的就不会。文档有解释

tableView下沉的更多相关文章

  1. iOS开发之--storyboary下,拖拽一个tableview/collectionView/view 等,顶端下沉64个像素的处理方法

    大家可能会发现,在sb或者xib里面拖拽一个tableview/collectionview/view的,顶端会自动下沉64个像素,也就是说,运行在模拟器上去,自导航下面又自动下沉了64个像素, 那是 ...

  2. iOS有关横向TableView的东西

    之前看到Apple store里面有横向的tableview,当然也有可能是collectionview啦. 尤其是项目中只有一条那么需要横向滑动的东西,就没有必要使用庞大的collectionvie ...

  3. tableView显示第一个cell有偏移问题

    - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { return 0 ...

  4. [tableView reloadData] 和 runloop

    需要[tableView reloadData]后需要立即获取tableview的cell.高度,或者需要滚动tableview,那么,直接在reloadData后执行代码是会有问题的. 断点调试感觉 ...

  5. 【代码笔记】iOS-一个tableView,两个section

    一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...

  6. 【Swift】Alamofile网络请求数据更新TableView的坑

    写这篇BLOG前,有些话不得不提一下,就仅当发发恼骚吧... 今天下午为了一个Alamofire取得数据而更新TableView的问题,查了一下午的百度(360也是见鬼的一样),竟然没有一个简单明了的 ...

  7. TableView 滑动收起键盘

    self.tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag; 拖拽tableView就会收起键盘

  8. 关于TableView上有一段留白的解决方法

    当cell的类型是plaint类型时 直接设置self.automaticallyAdjustsScrollViewInsets=NO; 还有要注意检查你自己设置的frame是否正确     当cel ...

  9. iOS监听tableView组头切换事件

    - (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSIntege ...

随机推荐

  1. 浅谈Java中set.map.List的区别

    就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...

  2. Jmeter线程ramp-up period (in seconds)如何取值

    线程组主要包含三个参数:线程数.准备时长(Ramp-Up Period(in seconds)).循环次数. 线程数:虚拟用户数.一个虚拟用户占用一个进程或线程.设置多少虚拟用户数在这里也就是设置多少 ...

  3. windows server2012安装jdk时报错误代码1603

    解决方法:在控制面板中将其卸载,把jdk8换成jdk7就可以安装上了

  4. java 泛型详解(转)

    普通泛型 class Point<T>{       // 此处可以随便写标识符号,T是type的简称 private T var ; // var的类型由T指定,即:由外部指定 publ ...

  5. zuluCryt cli howto

    1.解锁卷的命令. zuluCrypt-cli -o -d /dev/sdc1 -m blabla -e ro -f /home/keyFile zuluCrypt-cli -o -d /dev/sd ...

  6. 两个SSH2间免密码登录

    SSH2免密码登录OpenSSHhttp://blog.csdn.net/aquester/article/details/23836299 OpenSSH免密码登录SSH2http://blog.c ...

  7. 一个简单的编译tex的Makefile

    tex编译成pdf通常要经过以下步骤:tex-->dvi-->ps-->pdf.如果修改了tex文件想看一下效果,就要把命令重新敲一遍.虽然就几行命令,反复敲还是很烦人的.最直接的办 ...

  8. 编写高质量代码改善C#程序的157个建议——建议100:静态方法和实例方法没有区别

    建议100:静态方法和实例方法没有区别 静态方法在加载时机和内存使用上和实例方法完全一致.在这里,我们先引出一个概念“类型对象”.比如类型Person,我们都知道new Person() 会产生一个对 ...

  9. Python之安装第三方扩展库

    PyPI 地址:https://pypi.python.org/pypi 如果你知道你要找的库的名字,那么只需要在右上角搜索栏查找即可. 1.pip安装扩展库 (1)安装最新版本的扩展库: cmd&g ...

  10. socket API详解

    send函数 int send( SOCKET s,   const char FAR *buf,   int len,   int flags ); 不论是客户还是服务器应用程序都用send函数来向 ...