iOS - 如何在滚动UITableView时减少UINavigationBar titleView的alpha?

pat*_*inn 1 objective-c uitableview ios

我正在寻找一种方法将UINavigationBar titleView alpha通道缩小为零,同时向下滚动UITableView并在向上滚动时反向执行.

有没有干净的方法使用scrollViewDidScroll委托?

Mik*_*and 7

超级简单,只需将其放入导航控制器中的表视图控制器:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
    self.navigationController.navigationBar.alpha = 1 - (self.tableView.contentOffset.y / (self.tableView.contentSize.height - self.tableView.frame.size.height));
}
Run Code Online (Sandbox Code Playgroud)

减法self.tableView.frame.size.height是因为contentOffset从顶部设置,所以即使在最低位置也会被框架的宽度分开; 0-100范围是0到(contentSize.height- frame.size.height).