我设法将searchBar修复到TableView的顶部。但现在我需要让section header停止在searchBar(它是tableHeaderView的一部分)下面。我已经将UITableView子类化为:
#import "CustomTableView.h"
@implementation CustomTableView
- (void)layoutSubviews
{
[super layoutSubviews];
CGRect rect = self.tableHeaderView.frame;
rect.origin.y = MAX(0, self.contentOffset.y);
self.tableHeaderView.frame = rect;
[self bringSubviewToFront:self.tableHeaderView];
}
@end
我尝试将以下部分标题保留在下面:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y < 0)
{
scrollView.contentInset = UIEdgeInsetsMake(44+scrollView.contentOffset.y, 0, 0, 0);
} else {
scrollView.contentInset = UIEdgeInsetsMake(44, 0, 0, 0);
}
NSLog(@"offset: %f", scrollView.contentOffset.y);
}
我试图在tableView上放置带有insets的偏移量。但是当将tableView拉到最后时,它会在顶部产生一个空白。并且在用户仍在拖动时尝试删除它们没有意义(就像在我的尝试中一样)。
我知道我可以使用UIView并在顶部放置一个searchBar并在其下面放置一个UITableView但是我必须更改大量代码,因为我开始基于TableViewController构建此视图。
有没有解决方案?