- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
当用户与显示在其下方的 presentModalViewController:
的 View 交互时,我如何使 curled-up 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/
我是一名优秀的程序员,十分优秀!