Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS-如何在滚动UITableView时减少UINavigationBar标题视图的alpha?_Ios_Objective C_Uitableview - Fatal编程技术网

iOS-如何在滚动UITableView时减少UINavigationBar标题视图的alpha?

iOS-如何在滚动UITableView时减少UINavigationBar标题视图的alpha?,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我正在寻找一种方法,在向下滚动UITableView时,将UINavigationBar标题视图alpha通道减少为零,在向上滚动时,则相反 使用scrollViewDidScroll委托有什么干净的方法可以做到这一点吗?您可以使用scrollView的contentOffset值来确定其与顶部的距离,从而相应地设置alpha。您可以使用scrollView的contentOffset值来确定其与顶部的距离,从而设置alpha因此。超级简单,只需将其放入导航控制器中的表视图控制器中: -(voi

我正在寻找一种方法,在向下滚动UITableView时,将UINavigationBar标题视图alpha通道减少为零,在向上滚动时,则相反


使用scrollViewDidScroll委托有什么干净的方法可以做到这一点吗?

您可以使用scrollView的contentOffset值来确定其与顶部的距离,从而相应地设置alpha。

您可以使用scrollView的contentOffset值来确定其与顶部的距离,从而设置alpha因此。

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

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

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

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

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
    self.navigationController.navigationBar.alpha = 1 - (self.tableView.contentOffset.y / (self.tableView.contentSize.height - self.tableView.frame.size.height));
}
减去
self.tableView.frame.size.height
是因为
contentOffset
是从顶部设置的,所以即使在最低位置也会被框架的宽度隔开;0-100的范围是0到(
contentSize.height
-
frame.size.height