什么时候调用layoutSubviews

什么时候调用layoutSubviews如果你想强制更新布局,不要直接调用此方法。你可以调用setNeedsLayout方法;如果你想立即数显你的views,你需要调用layoutIfNeeded方法。 layoutSubviews作用 layoutSubviews是对subviews重新布局。比如,我们想更新子视图的位置的时候,可以通过调用layoutSubviews方法,既可以实现对子视图重新布局。 layo

大家好,又见面了,我是你们的朋友全栈君。

如果你想强制更新布局,不要直接调用此方法。你可以调用setNeedsLayout方法;如果你想立即数显你的views,你需要调用layoutIfNeeded方法。 

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事件。 

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

当view的fram的值为0的时候,`addSubview`也不会调用`layoutSubviews`的。

layoutSubviews方法在对自雷视图进行布局的时候非常方便。可以自己动手,深入理解layoutSubviews的调用机制。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159952.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python垃圾回收机制(引用计数)

    python垃圾回收机制(引用计数)在Python中,垃圾回收机制主要是以引用计数为主要手段,以标记清除和分代回收机制作为辅助手段实现的

    2022年6月22日
    30
  • linux中quota信息查看,quota命令_Linux quota命令使用详解:显示磁盘已使用的空间与限制…

    quota命令用于显示用户或者工作组的磁盘配额信息。输出信息包括磁盘使用和配额限制。语法quota(选项)(参数)选项-g:列出群组的磁盘空间限制;-q:简明列表,只列出超过限制的部分;-u:列出用户的磁盘空间限制;-v:显示该用户或群组,在所有挂入系统的存储设备的空间限制;-V:显示版本信息。参数用户或者工作组:指定要显示的用户或者工作组。实例我们可以限制某一群组所能使用的最大磁盘配额,而且可以…

    2022年4月8日
    98
  • mle与map_normal map

    mle与map_normal map摘要本文是关于MLE(最大似然估计)与MAP(最大后验概率)的一些自己学习的心得.(本文的重点在于对比MLE和MAP)正文1.MLE(最大似然估计)MLE简单的理解可以这样:假设我们手上有一批数据(样本),而且我们假设这些数据(样本)服从某个分布(模型已知),但是参数未知.这个时候,我们希望对这个参数进行估计,而MLE的思想就是找到一个参数值,使得每条样本出现的概率最…

    2025年6月19日
    3
  • 用python做的网站_有趣的python爬虫案例

    用python做的网站_有趣的python爬虫案例项目地址:https://github.com/rwv/chinese-dos-games-webgit克隆地址:gitclonehttps://github.co…

    2025年7月8日
    2
  • BigDecimal详解 BigDecimal加减乘除运算 BigDecimal比较大小 BigDecimal保留两位小数

    BigDecimal详解 BigDecimal加减乘除运算 BigDecimal比较大小 BigDecimal保留两位小数文章目录1、为什么要用BigDecimal?2、BigDecimal初始化赋值3、BigDecimal的加减乘除运算4、BigDecimal比较大小5、BigDecimal保留两位小数及舍入模式6、BigDecimal其他方法及常量1、为什么要用BigDecimal?工作中我们通过浮点数进行运算时,好像时不时的会出现一些小误差。例如:publicstaticvoidmain(String[]args){System.out.println(1.9-1.2);Sys

    2022年6月2日
    52
  • 解决win10升级后无法打开VC问题「建议收藏」

    解决win10升级后无法打开VC问题「建议收藏」最近有不少小伙伴问到:“为什么win10自动升级后,我之前安装的VC怎么打不开了,一直报‘应用程序无法正常启动(0xc0000142)之类的错误’”。有的小伙伴把之前安装过的VC卸载后重装,然而重装后并没有解决问题,VC仍然打不开,还是报上面的错误。博主亲自尝试的一翻,并将报错的截图献给大家(有图有真相),对于有过经历的小伙伴一定很熟悉吧。       好了,咱们就直接进入主题

    2022年8月12日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号