zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    CF700C Break Up
    CF865C Gotta Go Fast
    CF1559D2 Mocha and Diana (Hard Version)
    CF1500C Matrix Sorting
    排列计数机
    CSP-S 2021 退役记
    【做题记录】[NOIP2011 提高组] 观光公交
    【做题记录】构造题
    乱搞
    二维树状数组
  • 原文地址:https://www.cnblogs.com/xiaobajiu/p/11774496.html
Copyright © 2011-2022 走看看