setNeedsLayout setNeedsDisplay
layoutSubviews方法
根据苹果官方帮助文档对layoutSubviews方法的解释:
此方法用来重新定义子元素的位置和大小。
当子类重写此方法,用来实现UI元素的更精确布局。
如果要让布局重新刷新,那么就调用setNeedsLayout,即setNeedsLayout方法会默认用layoutSubViews方法。
setNeedsDisplay方法
与setNeedsLayOut方法相似的方法是setNeedsDisplay方法。
该方法在调用时,会自动调用drawRect方法。drawRect方法主要用来画图。
总结
所以,当需要刷新布局时,用setNeedsLayOut方法;当需要重新绘画时,调用setNeedsDisplay方法。