zoukankan      html  css  js  c++  java
  • 解析LayoutSubviews

    layoutSubviews作用

    layoutSubviews是对subviews重新布局。比如,我们想更新子视图的位置的时候,可以通过调用layoutSubviews方法,既可以实现对子视图重新布局。

    layoutSubviews默认是不做任何事情的,用到的时候,需要在子类进行重写。

    layoutSubviews以下情况会被调用

    苹果官方文档已经强调,不能直接调用layoutSubviews对子视图进行重新布局。那么,layoutSubviews什么情况下会被调用呢?通过百度搜索,发现以下几种情况layoutSubviews会被调用。

    1. 直接调用setLayoutSubviews。(这个在上面苹果官方文档里有说明)
    2. addSubview的时候。
    3. 当view的frame发生改变的时候。
    4. 滑动UIScrollView的时候。
    5. 旋转Screen会触发父UIView上的layoutSubviews事件。
    6. 改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件。

    我简单测试了一下,上面基本都会被调用。 注意:

    1. 一个view是不能够自己调用layoutSubviews,如果要调用,需要调用 setNeedsLayout或者 layoutIfNeeded

    2. 如果view的frame值为0,即使被添加了耶不会调用layoutSubviews

    3. 如果一个view的frame值改变了,那么它的父类的layoutSubviews也会被执行

    布局的代码样式:

  • 相关阅读:
    暴力字符串hash——cf1200E
    单调栈+线段树——cf1220F
    拆边+BFS队列骚操作——cf1209F
    控制器
    linux下安装配置jmeter
    docker-compose.yml配置jforum开源系统
    anyproxy
    docker搭建一键安装包lnmp
    docker tomcat,mysql 搭建开源项目jforum
    接口自动化测试-Mock Get和Post请求
  • 原文地址:https://www.cnblogs.com/crazygeek/p/5470012.html
Copyright © 2011-2022 走看看