产品让研究一下特殊时间的黑白画面的模式, 本以为会很复杂, 搜了一下, 找到一些很好的方案, 简单易懂易用。分享记录如下,感谢原文作者,原文链接如下:https://blog.csdn.net/IOSSHAN/article/details/123842441
创建一个uiview并实现方法
- (UIView*)hitTest:(CGPoint)pointwithEvent:(UIEvent*)event
{
return nil;
}
公共方法,写在基类或者其他需要的地方
- (void)showGrayViewWithSuperView:(UIView *)superView
{
//该方法是用来存储是否为黑白模式
BOOLisOpenWhiteBlackModel = [[NSUserDefaultsstandardUserDefaults]boolForKey:@"kIsShowBlackWhiteModel"];
if(isOpenWhiteBlackModel) {
if(@available(iOS12.0, *)) {//只支持12及以上
YXHBView*overlay = [[YXHBViewalloc]initWithFrame:superView.bounds];
overlay.userInteractionEnabled=NO;
overlay.translatesAutoresizingMaskIntoConstraints = false;
overlay.backgroundColor= [UIColorgrayColor];
overlay.layer.compositingFilter=@"saturationBlendMode";
[superViewaddSubview:overlay];
[superViewbringSubviewToFront:overlay];
}
}
}
调用:[self showGrayViewWithSuperView:self.view];
1.所有页面都需要 加在总的基类或者自定义的TabBarController中
2.部分页面需要, 那就 哪里需要加哪里