iOS图层渲染队列

时间:2013-01-15 00:07:09

标签: iphone ios quartz-graphics layer

我遇到了一个我还不明白的行为。我的代码基本上是这样做的:

  • 使用一些自定义UIView内容创建视图(使用drawRect查看),此视图还没有超视图,因此Quartz子系统不会调用它的[图层显示]。

  • 然后我做一个视图的renderInContext。

  • 问题在于,有时视图会完美呈现,有时它不会呈现子视图,也不会调用它们的drawRect。

为什么会这样?我错过了什么。我实际上知道同一层不能同时渲染。但是这个视图没有在主线程上呈现,因为它没有superview。

非常感谢

1 个答案:

答案 0 :(得分:0)

非常有趣,没有看到源代码几乎不可能理解,但我得到了一些你可以使用的提示。

  • 将视图添加到superview,将其alpha设置为0
  • 尝试将其添加到超级视图的界限
  • 尝试在该视图上调用-setNeedsDiplay

我不知道它们是否有效,渲染系统不是一个简单的任务,但我会给出一个镜头。还有一件事我没有得到,通常是子视图被添加为子视图,但是你说你做了在他们内部的东西。不要在drawRect drawRect and addSubview: custom drawing affects which views?

中添加子视图