storyboard中tableheaderview的自适应高度问题

空心菜舅舅
  • 152

有两个问题:
1、storyboard中可以直接往tableview中拖控件作为tableheaderview,但是我发现tableheaderview的高度在storyboard设置以后就不能改了,如果我在代码里面改了tableheaderview的frame,tableview的cell与tableheaderview之间会空出一部分。
2、如果我用self.tableView.tableHeaderView = imageView;的方法来设置tableheaderview,第一行cell会被挡住。

不知道各位高手是怎么实现tableheaderview高度的自适应的。还有,我想实现tableview下拉,顶部的图片随着放大的效果,网上看了很多代码都跟tableheaderview有关,所以不解决上面的问题就无法实现,还是说大家有别的办法?请指点,谢谢~~

ps:我又试了另一种方法添加header

self.tableView.contentInset 
= UIEdgeInsetsMake(Screen_width/2 + 84, 0, 0, 0);
UIImageView *imageView
    = [[UIImageView alloc] initWithFrame:CGRectMake(4, -Screen_width/2 - 44, Screen_width, Screen_width/2)];
    [self.tableView addSubview:imageView];

可是又有疑问了,tableView.contentInset的偏移量怎么设置,跟状态栏、标签栏、导航栏有什么关系。你们可以看到imageview的y和tableView.contentInset的top值是不一样的,因为不这么写会有一部分cell被遮挡。而且imageview的x不能写成0,否则也会错位,为什么?

回复
阅读 4.9k
3 个回答

https://github.com/noveleven/...
大致思路是每次更新header时,计算header的最新高度,改变header的frame然后重新设置header,如果是下拉缩放图片就简单了,先计算偏移量,不断更新header就可以了,不需要考虑自适应问题。

我觉得那就是你的headerview的高度不对,如果对的话,是不会遮挡第一cell的 ,你可以在返回headerviewheight的代理方法里面实现动态给他高度的方法

在代码里面改了tableheaderview的frame后,需要reload一下data?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏