layoutSubviews解析

layoutSubviews解析1.layoutSubviews的触发1、 init初始化不会触发layoutSubviews2、 addSubview会触发layoutSubviews3、 设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化4、 滚动一个UIScrollView会触发layoutSubviews5、 旋转Screen

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1.layoutSubviews的触发

1、 init初始化不会触发layoutSubviews。

2、 addSubview会触发layoutSubviews。

3、 设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化。

4、 滚动一个UIScrollView会触发layoutSubviews。

5、 旋转Screen会触发父UIView上的layoutSubviews事件。

6、 改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件。

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

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

2.Lays out subviews文档解析。

The default implementation of this method does nothing on iOS 5.1 and earlier. Otherwise, the default implementation uses any constraints you have set to determine the size and position of any subviews.

在iOS5.1或之前的版本中,这个方法什么也没干.这个方法的默认实现是 用参数来设定subviews的尺寸和位置的 . 

Subclasses can override this method as needed to perform more precise layout of their subviews. You should override this method only if the autoresizing and constraint-based behaviors of the subviews do not offer the behavior you want. You can use your implementation to set the frame rectangles of your subviews directly. 

如果你需要更加精确的布局,可以在子类里面重写这个方法.仅仅在以下情况下:自动布局达不到你想要效果时你才有必要重写这个方法.你可以直接设置subviews的尺寸.

You should not call this method directly. If you want to force a layout update, call the setNeedsLayout method instead to do so prior to the next drawing update. If you want to update the layout of your views immediately, call the layoutIfNeeded method. 

你不能直接调用这个方法.如果你需要强制layout刷新,调用setNeedsLayout来代替.如果你想要立即刷新你的view,调用layoutIfNeeded

大概总结以下就是:

你不要直接调用方法layoutSubviews,如果想要刷新,请调用 setNeedsLayout 或者 layoutIfNeeded。

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

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

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


相关推荐

  • printer和typewriter_java类中可以定义类吗

    printer和typewriter_java类中可以定义类吗打印流       字符打印流(针对文本进行操作:PrintWriter)       字节打印流(PrintStream和标准输出流有关系System.out;)   PrintWriter:属于输出流 1)只能写数据(只能针对目的地文件进行操作),不能读数据(不能针对源文件进行操作) 2)可以针对文件直接进行操作  如果一个类中的构造方法里面有File对象或者String类型数…

    2022年8月10日
    4
  • JAVA 位操作

    JAVA 位操作

    2021年5月8日
    105
  • Access denied for user ‘root‘@‘localhost‘问题的解决「建议收藏」

    Access denied for user ‘root‘@‘localhost‘问题的解决「建议收藏」问题场景在阿里云上部署了一台服务器,CentOS6.8系统环境,安装了MySql+Nginx+Git+vsftpd等软件,在本地Linux终端以非root账户SSH远程登录服务器,在将项目打包发布时遇到如题所示问题。代码中配置文件里的用户名不是“root”,密码正确,且该用户名和密码是配置在服务端数据库的用户表中的。但是在用浏览器调用跟数据库交互接口时出错:尝试解决网上搜了一堆文章,主要集中在(1…

    2025年7月7日
    0
  • gmapping matlab实现_Gmapping笔记[通俗易懂]

    gmapping matlab实现_Gmapping笔记[通俗易懂]2D-slam激光slam:开源代码的比较HectorSLAMGmappingKartoSLAMCoreSLAMLagoSLAM作者:kint_zhao原文:https://blog.csdn.net/zyh821351004/article/details/47381135最近找到一篇论文比较了一下目前ros下2D激光slam的开源代码效果比较:详细参见论文:Anevalu…

    2022年6月29日
    23
  • 屏幕硬件参数选取

    屏幕硬件参数选取

    2021年7月20日
    60
  • Android从零开始搭建MVVM架构(3)——ViewModel

    Android从零开始搭建MVVM架构(3)——ViewModelViewModel类是被设计用来以可感知生命周期的方式存储和管理UI相关数据,ViewModel中数据会一直存活即使activityconfiguration发生变化。ViewModel有什么优势?1.数据持久化activity在销毁重建时,之前我们可以用activity的onSaveInstanceState()机制保存和恢复数据,但缺点很明显,onSaveInstanceS…

    2022年6月17日
    23

发表回复

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

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