博客
关于我
View的众多layout方法简介
阅读量:793 次
发布时间:2019-03-25

本文共 529 字,大约阅读时间需要 1 分钟。

iOS视图层布局是一个常见且基础但又复杂的方面,很多开发者在日常开发中会遇到布局问题。对于UI布局的理解对于创建高质量的应用至关重要。在实际开发中,view的布局管理涉及多个方法和机制,我们需要深入了解这些方法的工作原理以及何时调用它们。

layoutSubviews

layoutSubviews是UIView子类的一个布局方法,由系统调用默认不会有任何动作。在iOS 5.1及之前版本,layoutSubviews不会运行,随着时间的推移,苹果在后期版本中增加了更多的功能。这个方法主要用于子控制件的布局,其默认实现使用约束(Constraint)来确定子控件的大小和位置。需要特别强调的是,只有当child view的frame不为CGRectZero时,才会触发这个方法。因此,开发者在需要定制子控制件布局时,这是一个重要的手段。

关于调用时机,有几种常见情形:

  • 权重大时自动调用。

  • 添加子控件时调用一次。

  • 当view的尺寸发生变化时,前提是frame值有变化。

  • 在滚动UIScrollView时调用。

  • 当旋转屏幕时,显示}">

  • <-- 我们这里抽取常用的几个进行验证学习 -->

    <-- layoutSubviews在什么时候会被调用呢?? -->

    转载地址:http://ryiuk.baihongyu.com/

    你可能感兴趣的文章
    STM32工作笔记0032---编写跑马灯实验---寄存器版本
    查看>>
    order by rand()
    查看>>
    SSM(Spring+SpringMvc+Mybatis)整合开发笔记
    查看>>
    Orderer节点启动报错解决方案:Not bootstrapping because of 3 existing channels
    查看>>
    org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unexpected subelement profile
    查看>>
    sql查询中 查询字段数据类型 int 与 String 出现问题
    查看>>
    org.apache.commons.beanutils.BasicDynaBean cannot be cast to ...
    查看>>
    org.apache.dubbo.common.serialize.SerializationException: com.alibaba.fastjson2.JSONException: not s
    查看>>
    sqlserver学习笔记(三)—— 为数据库添加新的用户
    查看>>
    org.apache.http.conn.HttpHostConnectException: Connection to refused
    查看>>
    org.apache.ibatis.binding.BindingException: Invalid bound statement错误一例
    查看>>
    org.apache.ibatis.exceptions.PersistenceException:
    查看>>
    org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned
    查看>>
    org.apache.ibatis.type.TypeException: Could not resolve type alias 'xxxx'异常
    查看>>
    org.apache.poi.hssf.util.Region
    查看>>
    org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I)Lorg/apache/xmlbeans/XmlOptions;
    查看>>
    org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /
    查看>>
    org.hibernate.HibernateException: Unable to get the default Bean Validation factory
    查看>>
    org.hibernate.ObjectNotFoundException: No row with the given identifier exists:
    查看>>
    org.springframework.boot:spring boot maven plugin丢失---SpringCloud Alibaba_若依微服务框架改造_--工作笔记012
    查看>>