编辑:我想我正在缩小这个问题。我刚刚找到了一种更简单的方法来重现我想要的东西。如果使用故事板创建新项目,请在tableview控制器上拖动并将搜索栏拖动为tableview的子视图。如果你运行它(带有一些虚拟单元格),并且滚动显示搜索栏的大约一半,搜索栏将捕捉到视图的顶部。如果您通过拖动UIView而不是搜索栏来尝试此操作,则此行为不再发生。如何将UIView作为子视图获得此行为?
希望这让人们更清楚,谢谢你们。
我的普通样式表视图中有一个标题,我正在实现它:
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 51;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
SegmentedHeaderView *header = [[SegmentedHeaderView alloc]initWithFrame:CGRectMake(0, 0, 320, 51)];
return header;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGFloat sectionHeaderHeight = 51;
if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) {
scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
} else if (scrollView.contentOffset.y>=sectionHeaderHeight) {
scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
}
}
我希望标题与tableview一起滚动而不是坚持到顶部,它正确地做到了。但是,当我滚动到顶部时,我希望标题像iOS 7中的消息应用程序中的搜索栏标题一样工作。在消息应用程序中,当您滚动并在搜索栏的中途停止时,要么搜索条形图粘在视图的顶部,或者第一个细胞粘在视图的顶部。
当用户停止滚动部分标题视图显示标题跳转时,我该如何实现呢?
编辑:我也可以通过邮件应用中的搜索栏看到我想要的行为。