3

我不知道setneedsdisplay和uiviewcontentmoderedraw之间的区别,你什么时候使用它们,它们不是完全相同的东西吗?

4

1 回答 1

9

它们是不同的东西。 setNeedsDisplay是动词。用它来告诉视图它正在查看的东西的状态已经改变,所以它应该重绘(通过在运行循环的下一次迭代中调用它的 drawRect: 方法)。

contentMode是视图的属性。它不会导致视图立即执行任何操作。它指定视图如何处理相对于其大小的内容。 UIViewContentModeRedraw是可能分配给此属性的值。这意味着视图将通过导致自身重绘(通过调用setNeedsDisplay自身)来呈现大小变化。

如果您计划对视图大小的更改进行动画处理,UIViewContentModeRedraw这是一个昂贵的选择,因为它会在动画期间尝试从头开始重复重绘(而不是操作位图副本)。

于 2012-07-05T21:03:04.863 回答