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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容