菜鸟教程小白 发表于 2022-12-12 16:14:51

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


                                            <p><p>目前在 iOS 8.0 中测试。</p>

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

<p>我将 View 添加到整个 ViewController 的 View 之上:</p>

<pre><code>-(void)showBlur{
    if (!self.blurview) {
      self.blurview = [ initWithFrame:self.view.frame];
      UIVisualEffect *blurEffect2;
      blurEffect2 = ;
      UIVisualEffectView * visualEffectView2 = [ initWithEffect:blurEffect2];
      visualEffectView2.frame = self.view.frame;
      ;
      ;
    } else {
      self.blurview.hidden=NO;
    }
}
</code></pre>

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

<pre><code>-(void)hideBlur{
    NSLog(@&#34;This gets printed before hidden: %@&#34;,);
    self.blurview.hidden=YES;
    NSLog(@&#34;This gets printed after hidden: %@&#34;,);
}
</code></pre>

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

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

<p>上面打印出来:</p>

<pre><code>2015-09-09 00:55:21.542 Kitty This gets printed before hidden: 2015-09-09 04:55:21 +0000
2015-09-09 00:55:21.543 Kitty This gets printed after hidden: 2015-09-09 04:55:21 +0000
</code></pre>

<p>这是某种错误吗??</p>

<p>编辑 2:我最初测试的视觉效果 View 是 View 本身,而不是将其添加为另一个 UIView 的 subview 。那里也有同样的问题。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我自己解决了这个问题。我最初是从主队列以外的另一个 dispatch_async 队列调用 hideBlur 方法。我通过将 UI 更新部分放在主队列中来解决它,如下所示:</p>

<pre><code>-(void)hideBlur{
    NSLog(@&#34;This gets printed before hidden: %@&#34;,);
    dispatch_async(dispatch_get_main_queue(),^{
      self.blurview.hidden=YES;
    });
    NSLog(@&#34;This gets printed after hidden: %@&#34;,);
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - UIVisualEffectView setHidden=YES 非常慢 - 奇怪的错误?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/32471247/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/32471247/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - UIVisualEffectView setHidden=YES 非常慢 - 奇怪的错误?