layoutSubviews 与 drawRect
2、addSubview会触发layoutSubviews。
3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化。
4、滚动一个UIScrollView会触发layoutSubviews。
5、旋转Screen会触发父UIView上的layoutSubviews事件。
6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件。
2、该方法在调用sizeToFit后被调用,所以可以先调用sizeToFit计算出size。然后系统自动调用drawRect:方法。
3、通过设置contentMode属性值为UIViewContentModeRedraw。那么将在每次设置或更改frame的时候自动调用drawRect:。
4、直接调用setNeedsDisplay,或者setNeedsDisplayInRect:触发drawRect:,但是有个前提条件是rect不能为0。
以上1,2推荐;而3,4不提倡
2、若使用calayer绘图,只能在drawInContext: 中(类似鱼drawRect)绘制,或者在delegate中的相应方法绘制。同样也是调用setNeedDisplay等间接调用以上方法
3、若要实时画图,不能使用gestureRecognizer,只能使用touchbegan等方法来掉用setNeedsDisplay实时刷新屏幕
转载于:https://www.cnblogs.com/guangleijia/p/5046222.html
layoutSubviews 与 drawRect相关推荐
- UIView的layoutSubviews和drawRect方法何时调用
UIView的layoutSubviews和drawRect方法何时调用 转自:http://jianyu996.blog.163.com/blog/static/1121145552013051 ...
- UIView的layoutSubviews和drawRect
本文转载至 http://my.oschina.net/megan/blog/143027 UIView的setNeedsDisplay和setNeedsLayout方法.首先两个方法都是异步执行的. ...
- 对应用程序启动时所有方法的调用顺序分析
一个应用程序的启动过程要包括代理的创建,控制器的加载和控制器view的加载,这其中有很多关于生命周期的方法,每个方法都是有先后顺序的,如果调用顺序拿不准,或者某段代码写的方法不恰当,就会遇到各种奇葩问 ...
- 从 setNeedsLayout 说起
本文从 setNeedsLayout 这个方法说起,分享与其相关的 UIKit 视图交互.使用场景等内容. UIKit 为 UIView 提供了这些方法来进行视图的更新与重绘: public func ...
- iPhone应用程序编程指南(窗口和视图)
窗口和视图 窗口为内容显示提供背景平台,而视图负责绝大部分的内容描画,并负责响应用户的交互. 什么是窗口和视图? UIWindow的作用 iPhone应用程序通常只有一个窗口,表示为一个UIWindo ...
- iOS开发基础知识--碎片27
iOS开发基础知识--碎片27 1:iOS中的round/ceil/floorf extern float ceilf(float); extern double ceil(double); ext ...
- iOS面试题目及答案总结
这是一些常见的笔试问题,总共12道题目.题目标红了,答案的话是我从网上查来的,大家觉得不标准的可以自行百度. (1) 应用程序启动时的顺序 首先回顾一下应用程序的启动过程 ①.先加载Main函数 ...
- iOS APP启动函数调用顺序~详解
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄 一.OC调用 C++ 会为静态创建的对象生成初始化器,与静态语言不同,OC基于Runtime机制可以用类的名字来实例化一个类的对象. ...
- ios UIView全部API解读
/********* UIView是iOS系统界面元素的基础,所有的界面元素都是集成自它.它本身完全是由CoreAnimation来实现的.它真正的绘图部分,是一个叫CALayer(Core Anim ...
最新文章
- YOLOV5 的小目标检测网络结构优化方法汇总(附代码)
- 前端培训_backbone
- python3.6.2下载教程_Windows下升级Python3.7.7后(原Python3.6.2版本)如何切换Python版本|python基础教程|python入门|python教程...
- hdu 1086 线段相交
- EntityFramwork(1) 源地址https://msdn.microsoft.com/zh-cn/data/jj193542
- flash air 解析html,AIR 程序内部显示网页,并可以点击浏览的方法(HTMLLoader、StageWebView)...
- 进阶篇-安卓系统:2.多点触控的交互处理
- windows命令行无法启动redis_windows系统安装redis
- 定时器中断实验 编写程序使定时器0或者定时器1工作在方式1,定时50ms触发蜂鸣器。
- java okhttp3 工具类,Retrofit+okhttp+Rxjava网络请求工具类
- 【MySQL】MySQL 管理员必备技能 用户 权限 管理
- OCX控件注册相关(检查是否注册,注册,反注册)
- linux二进制安装包制作,linux下二进制安装包的创建
- Tensorflow游乐场
- 递归算法经典实例python-递归案例python
- EXCEL 求解线性规划问题
- 小米--万物互联实现原理
- python绘制登陆时的卫星云图(TBB)
- Transformer翻译模型Decoder详解(Masking)
- gcc 编译时中-L -l -Wall的含义