iOS view如何刷新

转自 csdn
iOS视图强制刷新

在iOS程序里,我们如果有一个view需要改变了他的数据,需要强制刷新,比如说,我们在我们的TableViewCell获取到数据的时候,我们需要强制把这个cell刷新一下,来显示我们新的数据,我们就可以使用以下方法。

UIView:

setNeedsLayout()  
layoutIfNeeded()

那么这两个有什么区别呢,使用setNeesLayout(),我们在我们一个update cycle中间,只是标记这个view需要更新,而不会强制系统强制的去重新绘制我们的这个view,他会调用我们的layoutSubview,而这个layoutSubview也是我们想要重新设置我们子视图的布局,如果是使用layoutIfNeeded(),我们会强制系统强制刷新我们这个view

我们发现,和上面的setNeedsLayout()方法相似的有一个函数叫做setNeedsDisplay()。那么这两个方法又有什么区别呢?setNeedsDisplay(),主要是为了绘图而存在的,每次调用它,我们会标记为我们的这个view需要重新绘制,在下次我们的绘制周期中,会调用我们的drawRect()方法来绘制我们的视图,你还可以通过setNeedsDisplayInRect(rect: CGRect)这个函数来指定重新绘制的rect

你可能感兴趣的:(iOS view如何刷新)