MTransparentNav
MTransparentNav copied to clipboard
iOS12 好像获取不到self.navigationBar.subviews
- (void)setNavigationBackgroundAlpha:(CGFloat)navAlpha { CGFloat alpha = MAX(MIN(navAlpha, 1), 0); UIView *barBackground = self.navigationBar.subviews[0]; UIView *colorView = [self getColorViewOnView:barBackground]; colorView.alpha = alpha; if ([barBackground valueForKey:@"_shadowView"]) { UIView *shadowView = [barBackground valueForKey:@"_shadowView"]; shadowView.alpha = alpha; shadowView.hidden = alpha == 0 ? YES : NO; } }
这个方法报错在iOS 12下
改成 [[self.navigationBar subViews] firstObject] . 可以
- (void)setNavigationBackgroundAlpha:(CGFloat)navAlpha { CGFloat alpha = MAX(MIN(navAlpha, 1), 0); UIView *barBackground = self.navigationBar.subviews[0]; UIView *colorView = [self getColorViewOnView:barBackground]; colorView.alpha = alpha; if ([barBackground valueForKey:@"_shadowView"]) { UIView *shadowView = [barBackground valueForKey:@"_shadowView"]; shadowView.alpha = alpha; shadowView.hidden = alpha == 0 ? YES : NO; } }
这个方法报错在iOS 12下
[0如果数组为空, 会发生奔溃, 使用firstObject会返回nil, oc里可以给nil发消息
改成 [[self.navigationBar subViews] firstObject] . 可以
您好, iOS12和之前的系统在navgationbar上有什么更新变化吗, 为什么会导致这个bug呢?往指点