当前位置: 移动技术网 > 移动技术>移动开发>IOS > imageRectForContentRect,titleRectForContentRect,contentRectForBounds,imageRectForContentRect什么时候调用

imageRectForContentRect,titleRectForContentRect,contentRectForBounds,imageRectForContentRect什么时候调用

2019年11月01日  | 移动技术网移动技术  | 我要评论

uibutton的布局顺序细节

  什么时候调用imagerectforcontentrect,titlerectforcontentrect,contentrectforbounds,imagerectforcontentrect,也是调用时机。首先梳理清楚几个布局的规则:

  1. 改变view的size会触发layoutsubviews
  2. 改变view的x或y不会触发layoutsubviews
  3. 改变subview的size会触发superview的layoutsubviews
  4. 改变subview的x或y不会触发自己以及父视图的layoutsubviews

记住这几个布局时的调用顺序:

  1. layoutsubviews
  2. backgroundrectforbounds:
  3. contentrectforbounds:
  4. imagerectforcontentrect:
  5. titlerectforcontentrect:

特别的:

  • 在uibutton初始化阶段会依次调用contentrectforbounds:,imagerectforcontentrect:。这是在布局之前完成的。
  • 改变title,image,background image都会来到进行绿色文字顺序的布局。但不会触发父视图的布局,因为uibutton的尺寸未变。
  • 绿色文字区域的调用并不是一次完成。而是复杂的多次调用完成的。它的顺序是:3 -> 4 -> 3 -> 5 -> 3 -> 4

转注出:https://www.cnblogs.com/xiaobajiu/p/11774496.html

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网