gpt4 book ai didi

ios - 在 IOS 7/8 上呈现之前对 View 应用模糊效果?

转载 作者:行者123 更新时间:2023-11-29 12:37:39 24 4
gpt4 key购买 nike

我正在开发一个涉及隐私的应用程序,我想在应用程序启动时模糊主屏幕(然后我要求进行本地身份验证等。)

我遇到的主要问题是,我不知道如何在 View 显示之前访问它。如果我尝试获取 - (void)viewDidLoad 中的 View ,则不应用模糊效果(因为该 View 尚不存在),如果我尝试访问 - ( void)viewDidAppear:(BOOL)animated 然后在应用模糊效果之前非模糊 View 会出现一秒钟。

有没有办法在屏幕上显示之前获取 View 并应用模糊效果?

我用于应用模糊效果的代码是:

UIVisualEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleExtraLight];
UIVisualEffectView * visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
visualEffectView.frame = self.view.window.bounds;
[UIApplication.sharedApplication.keyWindow.subviews.lastObject addSubview:visualEffectView];

提前致谢。

最佳答案

不知道为什么,但在主线程中获取和模糊 View 效果很好,即使在 - (void)viewDidLoad 中也是如此。模糊是即时的,非模糊版本根本不显示。

    dispatch_async(dispatch_get_main_queue(), ^{
//blur here
});

现在它工作正常,即使从 AppDelegate 调用也是如此!

@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// ...
[self addBlurLayer];
// ...
return YES;
}

-(void)addBlurLayer
{
dispatch_async(dispatch_get_main_queue(), ^{
if(visualEffectView==nil)
{
UIVisualEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleExtraLight];
visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
visualEffectView.frame = self.window.bounds;
[UIApplication.sharedApplication.keyWindow.subviews.lastObject addSubview:visualEffectView];
}
});
}

关于ios - 在 IOS 7/8 上呈现之前对 View 应用模糊效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25852914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com