根据我的理解, setNeedsDisplay
只影响它被调用的 View 。有没有一种简单的方法可以说“递归地更新此 View 及其所有 subview ?”
为了回应评论,这是我的情况:我有一个自定义 View
@interface ContainerView : UIView
此 View 未实现
drawRect
。在我的 xib 中有一个 container
的实例(称为 ContainerView
),其中添加了一些(自定义) subview 。当我在代码中说[container setNeedsDisplay]
我希望这些 subview 能够更新。我哪里错了?
最佳答案
好的,UIView 在第一次显示时会绘制自己。 CALayer 没有。在 UIView 上调用 setNeedsDisplay 将其标记为脏,这也会自动重绘所有 subview (在所有 subview 上调用 drawrect)。在 CALayer 上调用 setNeedsDisplay 没有相同的效果,它不会重绘子图层。希望这可以帮助。
问候
引用
挑战极限的 iOS 7 编程 作者:Rob Napier、Mugunth Kumar
关于objective-c - setNeedsDisplay 和 subview ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8718290/