iOS 我在设置导航栏透明的时候 会多出一层白色蒙板 网上资料大部分是这样说的:
[self.navigationController.navigationBar.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:NSClassFromString(@"_UIBarBackground")]||[obj isKindOfClass:NSClassFromString(@"_UINavigationBarBackground")]) {
obj.hidden = YES;
obj.alpha = 0;
}
}];
这种方法对我无效 打开时图预览层发现 白色蒙板是覆盖在_UIBarBackground视图上面UIView类型的子视图 所以我尝试了以下方法设置透明:
self.naviView = [self.navigationController.navigationBar.subviews firstObject];
[self.naviView.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
obj.hidden = YES;
obj.alpha = 0;
}];
生效。
网友评论