我不知道setneedsdisplay和uiviewcontentmoderedraw之间的区别,你什么时候使用它们,它们不是完全相同的东西吗?
答案 0 :(得分:9)
他们是不同的东西。 setNeedsDisplay
是一个动词。使用它来告诉视图它正在查看的东西的状态已经改变,所以它应该重绘(通过在运行循环的下一次迭代中调用其drawRect:方法)。
contentMode
是视图的属性。它不会导致视图立即执行任何操作。它指定视图如何处理其内容相对于其大小。 UIViewContentModeRedraw
是可能分配给此属性的值。这意味着视图将通过自身重绘(通过在其自身上调用setNeedsDisplay
)来呈现大小更改。
如果您打算对视图大小的更改进行动画处理,UIViewContentModeRedraw
是一个昂贵的选择,因为它会尝试在动画期间从头开始重复重绘(而不是操纵位图副本)。