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

  • 相关阅读:
    IO—》字节流&字符流
    IO—》递归
    IO—》File类
    IDEA快速升级模块版本号
    redis使用Jackson2JsonRedisSerializer序列化问题
    git 创建管理多用户
    linux后台启动程序脚本实例
    linux 安装配置kafka脚本
    linux 安装配置zookeeper脚本
    linux安装配置JDK脚本
  • 原文地址:https://www.cnblogs.com/xiaobajiu/p/11774496.html
Copyright © 2011-2022 走看看