我通过使用 tableHeaderView 并在滚动时调整框架的大小在 UITableView 中实现了视差效果:
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 表头与表内容间隔开:
最佳答案
需要重新设置tableHeaderView:
table.tableHeaderView = table.tableHeaderView;
关于ios - 在 iOS 6 中更改 tableHeaderView 的框架时,UITableView 不会自动调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13721503/