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

Posted xiaobajiu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了imageRectForContentRect,titleRectForContentRect,contentRectForBounds,imageRectForContentRect什么时候调用(示相关的知识,希望对你有一定的参考价值。

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

以上是关于imageRectForContentRect,titleRectForContentRect,contentRectForBounds,imageRectForContentRect什么时候调用(示的主要内容,如果未能解决你的问题,请参考以下文章

自定义button

从样本中删除 \t\t\t\t\t

TopN案例

Lua table直接索引VS缓存索引性能测试小示例

如何求解:T(n) = T(n/2) + T(n/4) + T(n/8) + (n)

递归的复杂度:T(n) = T(n-1) + T(n-2) + C