• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - UIVisualEffectView setHidden=YES 非常慢 - 奇怪的错误?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 16:14:51 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

目前在 iOS 8.0 中测试。

我正面临一个与 UIVisualEffectView 相关的奇怪错误(可能)。

我将 View 添加到整个 View Controller 的 View 之上:

-(void)showBlur{
    if (!self.blurview) {
        self.blurview = [[UIView alloc] initWithFrame:self.view.frame];
        UIVisualEffect *blurEffect2;
        blurEffect2 = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
        UIVisualEffectView * visualEffectView2 = [[UIVisualEffectView alloc] initWithEffect:blurEffect2];
        visualEffectView2.frame = self.view.frame;
        [self.blurview addSubview:visualEffectView2];
        [self.view addSubview:self.blurview];
    } else {
        self.blurview.hidden=NO;
    }
}

上面一切都很好,我在整个 View 顶部看到了一个模糊的 View 。但是,当我需要像这样隐藏整个模糊 View 时:

-(void)hideBlur{
    NSLog(@"This gets printed before hidden: %@",[NSDate date]);
    self.blurview.hidden=YES;
    NSLog(@"This gets printed after hidden: %@",[NSDate date]);
}

一些如何执行所有 3 行代码但我的模糊 View 仍然可见。如果我等待大约 5-10 秒,那么模糊 View 就会消失。另请注意,即使模糊 View 是“可见的”(尽管它现在应该被隐藏),我仍然能够以某种方式与模糊 View 下的 View 进行交互。当我与他们互动时,我看到他们模糊的轮廓移动了。但模糊 View 需要 5-10 秒才能消失。

我使用 NSLog 语句和断点进行了测试,发现“.hidden”确实及时成功调用,但 View 保持可见 5-10 秒。

上面打印出来:

2015-09-09 00:55:21.542 Kitty[8600:1094199] This gets printed before hidden: 2015-09-09 04:55:21 +0000
2015-09-09 00:55:21.543 Kitty[8600:1094199] This gets printed after hidden: 2015-09-09 04:55:21 +0000

这是某种错误吗??

编辑 2:我最初测试的视觉效果 View 是 View 本身,而不是将其添加为另一个 UIView 的 subview 。那里也有同样的问题。



Best Answer-推荐答案


我自己解决了这个问题。我最初是从主队列以外的另一个 dispatch_async 队列调用 hideBlur 方法。我通过将 UI 更新部分放在主队列中来解决它,如下所示:

-(void)hideBlur{
    NSLog(@"This gets printed before hidden: %@",[NSDate date]);
    dispatch_async(dispatch_get_main_queue(),^{
        self.blurview.hidden=YES;
    });
    NSLog(@"This gets printed after hidden: %@",[NSDate date]);
}

关于ios - UIVisualEffectView setHidden=YES 非常慢 - 奇怪的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32471247/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap