首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在iOS 6中更改tableHeaderView的框架时,UITableView不会自动调整大小

在iOS 6中更改tableHeaderView的框架时,UITableView不会自动调整大小
EN

Stack Overflow用户
提问于 2012-12-05 18:50:03
回答 2查看 1K关注 0票数 3

我通过使用tableHeaderView并在滚动时调整框架大小,在UITableView中实现了视差效果:

代码语言:javascript
复制
headerView is the table.tableHeaderView
topHeight = 400; // the height of the tableHeaderView

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGFloat scrollOffset = scrollView.contentOffset.y;
    if (scrollOffset>=0 && scrollOffset<=topHeight) {
        CGRect frame = CGRectMake(0, scrollOffset/2, 320, topHeight - scrollOffset/2);
        headerView.frame = frame;
    } else if (scrollOffset>topHeight) {
        CGRect frame = CGRectMake(0, 100, 320, 100);
        headerView.frame = frame;
    } else {
        CGRect frame = CGRectMake(0, 0, 320, topHeight);
        headerView.frame = frame;
    }
}

这个效果在iOS 5.0和5.1上效果很好,但我在iOS 6+上的tableHeaderView和表内容之间出现了一些奇怪的空格(图像中的标题是红色的)

iOS 5-标题和表内容之间没有空格:

iOS 6 0标题与表内容之间有空格:

EN

回答 2

Stack Overflow用户

发布于 2014-12-10 20:03:14

您需要重新设置tableHeaderView:

代码语言:javascript
复制
table.tableHeaderView = table.tableHeaderView;
票数 1
EN

Stack Overflow用户

发布于 2012-12-07 16:41:53

看起来标题视图的大小固定为初始值。在iOS 6上,来自表视图的内部计算可能已经更改-因此,如果不重新装入表,则无法更改视图的高度。

如果在scrollViewDidScroll函数的末尾重新装入该表,则可以正常工作(但这将是一个性能问题)。

在不重新加载表格的情况下操纵单元格的高度也有相同的效果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13721503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档