在手势右滑返回的时候,navigationBar出现黑色区域。什么情况?
问题的出现具体如下:在首页是一个渐变透明化的导航栏,点击动作跳往第二个界面之后手势右滑返回慢慢返回(viewWillAppear)的时候上面的navigationBar没有保持原来的空白,出现了如下图的空白。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGFloat minAlphaOffset = 0;
CGFloat maxAlphaOffset = 200;
CGFloat offset = scrollView.contentOffset.y;
CGFloat alpha = (offset - minAlphaOffset) / (maxAlphaOffset - minAlphaOffset);
// barImageView = self.navigationController.navigationBar.subviews.firstObject; navigationBar上的背景图层
barImageView.alpha = alpha;
// indexAlpha 变量记录首页navigationBar的透明度
indexAlpha = alpha;
[self setNeedsStatusBarAppearanceUpdate];
}
-(void)viewWillAppear:(BOOL)animated{
self.navigationController.navigationBar.translucent = NO;
//回到首页,导航栏保持离开时的透明度
barImageView.alpha = indexAlpha;
}
-(void)viewWillDisappear:(BOOL)animated{
//保证其他页面的透明度为1
barImageView.alpha = 1;
}
黑色部分是window的
backgroundColor
, 可以打开视图模式查看, 设置window的backgroundColor
避免nav滑动navbar未出现时黑色背景