【发布时间】:2018-05-02 22:25:24
【问题描述】:
我使用以下代码创建了blur effect,它在iOS 10 上运行良好,但在iOS 11 上停止运行。当应用程序移动到background 时,我无法查看blur。当应用程序来到foreground 时,有时,blur stays always 并且应用程序不再工作,使其工作的唯一方法是通过应用程序relaunching。
iOS 11 有什么解决方法吗?
-(void)addBlurEffect{
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
UIWindow * window = [[UIApplication sharedApplication] keyWindow];
blurEffectView.frame = window.frame;
blurEffectView.tag = 4444;
[window addSubview:blurEffectView];
}
-(void)removeBlurEffect{
NSArray *allWindows = [[UIApplication sharedApplication] windows];
for (UIWindow * aWindow in allWindows) {
UIView *blurEffectView = [aWindow viewWithTag:4444];
if (blurEffectView){
[blurEffectView removeFromSuperview];
}
}
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
[self addBlurEffect];
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
[self removeBlurEffect];
}
【问题讨论】:
-
应用在后台添加模糊效果有什么意义?该应用程序未在后台运行;没什么可看的。这段代码想做什么?
-
如果出于安全考虑,您希望您的应用在后台不显示任何内容,那么您可以在顶部添加一个视图来隐藏您的应用屏幕。
标签: ios ios11 uivisualeffectview uiblureffect