最近在仿作知乎客户端,知乎首页的 navigationBar 会随着下方的 tableView 滑动而改变,上滑隐藏,下拉显示,并且下拉需要一定速度才会触发显示。在网上查了一下,看到一个随 TableView 滑动改变 NavigationBar 透明度的demo,虽然和自己的需求不一样,但提供了利用 KVO 实现的思路,有了思路就着手做了,调试了几次和知乎官方实现效果稍有不同,但基本需求实现了,如果需要做到完全相同,只要再加一些条件判断就好了,主要代码如下:
#import "TestTableViewController.h"
@interface TestTableViewController ()
@end
@implementation TestTableViewController {
BOOL _isHidding;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self setupScrollHideNavigationBar];
self.navigationItem.title = @"TEST DEMO";
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableV