gpt4 book ai didi

ios - 使用 UIModalTransitionStylePartialCurl 时如何在 presentModalViewController 后面更新?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:27:23 26 4
gpt4 key购买 nike

当用户与显示在其下方的 presentModalViewController: 的 View 交互时,我如何使 curled-up View 实时更新?

我想要的行为:

  1. 用户点击 View 设置按钮。
  2. 用户点击 View 设置屏幕中的控件。 View 不会关闭 View 设置,而是会在后台自动更新。
  3. 用户点击某处以关闭 View 设置。

想象一下,如果在 map 中点击 Map、Satellite、Hybrid 不会自动展开,而只会更新显示。

我能够收到有关从设置 Controller 返回到主视图 Controller 的某些更改的通知。主视图 Controller 可以更新并发出信号,表明它应该重绘自己的一部分,但实际上更新屏幕是间歇性的。它会连续工作 5 次,然后不工作几次,然后再连续工作 5 次。然而,关闭模态视图总是 catch 下面的 View ,所以我假设我的 View 的渲染图像有时被缓存或者不顾我的请求而被重绘。但我想不出一种方法来验证这一点。

这在设备和模拟器上都会发生。

最佳答案

虽然此行为可能有多种根本原因,但这是我见过的导致 UIKit View “延迟”或“间歇”更新的常见问题。

如果更新呈现 View (或呈现 View )的语句在主队列以外的调度队列中运行,UIKit 可能会在实际的 UI 更新中产生不一致的结果和时间。您通常可以通过在更新 UI 的语句上放置断点并检查 Xcode 左侧调试器 View 中显示的“队列”名称来判断。它应该是“com.apple.main-thread”。如果不是,那可能是你的问题。这可能发生在很多委托(delegate)方法中,例如网络 API。

尝试将您的 UI 更新包装在:dispatch_async(dispatch_get_main_queue(), ^() { ... });看看是否有帮助!您应该只在需要时执行此操作,并一如既往地注意使用 block 安全技术。

我在 iOS 7.0.3 的全新通用应用程序中使用 iPad 模拟器测试了这个, View Controller 使用部分 curl 过渡呈现。通过在我上面提供的代码中使用后台队列关闭呈现的 View 时,我能够复制原始问题,包括间歇性更新和“快照”更新。切换到主队列后,一切正常。

让我知道这是否有帮助或是否存在其他问题:)

关于ios - 使用 UIModalTransitionStylePartialCurl 时如何在 presentModalViewController 后面更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7250342/

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