UIViewContentModeRedraw vs setNeedsDisplay?

bme*_*nde 3 xcode ios

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

dan*_*anh 9

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

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

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