2019独角兽企业重金招聘Python工程师标准>>>

从百度上搜索了一下layoutSubviews的用处,以下是搜索的结果,当然,笔者是会一一验证的.

1、 init初始化不会触发layoutSubviews

2、 addSubview会触发layoutSubviews

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

4、 滚动一个UIScrollView会触发layoutSubviews

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

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

在开始验证之前,先看看layoutSubviews到底是啥来着:)

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

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

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

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

转载于:https://my.oschina.net/u/2611953/blog/638878

谈谈UIView的几个layout方法-layoutSubviews、layoutIfNeeded、相关推荐

  1. UIView及其分类的属性方法定义

    UIView是iOS开发中最熟悉的控件,不是因为它用得多,而是很多UI控件都是继承它的,了解它的分类方法是很有必要的. UIView其实是由多个分类构成,主要有如下几个分类: UIView :基本属性 ...

  2. java SWT:最有效的layout方法Control.requestLayout()

    Eclipse SWT最新的版本中org.eclipse.swt.widgets.Control增加了一个新方法requestLayout()用于更高效的处理layout请求 该方法其实只有一行代码: ...

  3. 谈谈高效工作-强化行为的方法

    (2013-10-09 22:46:06) 谈谈高效工作-强化行为的方法 要做到高效,就要强化高效的行为,强化那些正确的行为.本文就谈谈如何强化行为. 先看两个故事. 故事一:钉钉子的故事 有一个坏脾 ...

  4. toolbar java_Java ToolBar.layout方法代码示例

    import org.eclipse.swt.widgets.ToolBar; //导入方法依赖的package包/类 protected ToolBar createToolbar() { fina ...

  5. 红橙Darren视频笔记 流式布局tagLayout measure layout方法学习 adapter使用 学习感悟

    效果: 自定义View public class TagLayout extends ViewGroup {private static final String TAG = "TagLay ...

  6. [ios2] UIView的hitTest,pointInside方法详解【转】

    关于UIView的触摸响应事件中,这里有一个常常容易迷惑的方法hitTest:WithEvent.先来看官方的解释:This method traverses the view hierarchy b ...

  7. UIView的hitTest和pointInside方法

    官方描述 - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event; Returns a Boolean value indicati ...

  8. 谈谈HTML5中的history.pushSate方法,弥补ajax导致浏览器前进后退无效的问题

    移动端为了减少页面请求,有时候需要通过单页面做成多页面的效果,最近有这么个需求,表单填完后执行第一步,然后执行第二步,第二步执行完后再执行第三步,每一步都要保留之前的数据.这种情况用单页面实现再合适不 ...

  9. 谈谈AssetStore及其脱离Unity下载方法

    AssetStore一直是Unity开发者又爱又恨的东西.首先这个生态绝对是先进的,并且越来越能够吸引高质量的开发者开发或开源他们的插件.它的缺点可能是大陆开发者尤为头疼的. 1.付费,客观的看99% ...

最新文章

  1. 一次愉快的 bug 修复经历
  2. zoj4110 Strings in the Pocket(manacher)
  3. 皮一皮:我也想做这样的房东,善解人意、为他人着想...
  4. SpringCloud(一):深入理解Eureka
  5. 定时器精度问题及影响
  6. html5属性详解,HTML5中的download属性详解
  7. ubuntu 18.04 ip固定
  8. 火了!堪称神级的 Spring Boot 手册
  9. 《Power Designer系统分析与建模实战》——2.1 需求模型简介
  10. 微信坐标转换百度坐标
  11. ASP.NET MVC:Razor 引入命名空间
  12. python如何输出结果为16_Appium+python自动化(十六)- ADB命令,知否知否,应是必知必会(超详解)...
  13. linux内核make 时间久,Linux内核makefile问题
  14. 【数学建模】灰色模型
  15. OpenHarmony学习笔记——南向开发环境搭建
  16. 金融、银行业务了解(自我盲点整理)
  17. 决胜B端(一)概述篇-走进B端
  18. 直播带货这么火,如何在小程序中实现视频通话及直播互动功能?
  19. Absolute公司防盗追踪软件到底存在什么安全问题
  20. 心胸决定境界,心态决定命运

热门文章

  1. 中国黑客自揭黑色产业链条:做病毒一定要低调
  2. (iOS)从0到Double系列 如何刻出一个可拖动的导航浮動按钮
  3. easyui-datagrid行数据field原样输出html标签
  4. 【面试系列】6种单例模式(Singleton)实现方法比较
  5. 使用GitList查看git修改记录
  6. [软考]2013年系统架构设计师备考
  7. QTP的那些事--web测试脚本不能录制的解决方法(个人整理未完待续)
  8. 计算机网络课程优秀备考PPT之第五章网络层(五)
  9. GMap.net 离线地图问题
  10. (转)在Windows平台上安装Node.js及NPM模块管理