问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

什么时候需要重写layoutSubviews和drawRect方法

发布网友 发布时间:2022-05-18 09:44

我来回答

1个回答

热心网友 时间:2023-10-13 22:30

layoutSubviews方便数据计算,drawRect方便视图重绘。
layoutSubviews在以下情况下会被调用:
1、init初始化不会触发layoutSubviews。
2、addSubview会触发layoutSubviews。
3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化。
4、滚动一个UIScrollView会触发layoutSubviews。
5、旋转Screen会触发父UIView上的layoutSubviews事件。
6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件。 7、直接调用setLayoutSubviews。 ? drawRect在以下情况下会被调用:
?
1、如果在UIView初始化时没有设置rect大小,将直接导致drawRect不被自动调用。drawRect 掉用是在Controller->loadView,?Controller->viewDidLoad?两方法之后掉用的.所以不用担心在 控制器中,这些View的drawRect就开始画了.这样可以在控制器中设置一些值给View(如果这些View?draw的时候需要用到某些变量 值).
2、该方法在调用sizeToFit后被调用,所以可以先调用sizeToFit计算出size。然后系统自动调用drawRect:方法。
3、通过设置contentMode属性值为UIViewContentModeRedraw。那么将在每次设置或更改frame的时候自动调用drawRect:。
4、直接调用setNeedsDisplay,或者setNeedsDisplayInRect:触发drawRect:,但是有个前提条件是rect不能为0。
以上1,2推荐;而3,4不提倡 ? drawRect方法使用注意点:
?
1、 若使用UIView绘图,只能在drawRect:方法中获取相应的contextRef并绘图。如果在其他方法中获取将获取到一个invalidate 的ref并且不能用于画图。drawRect:方法不能手动显示调用,必须通过调用setNeedsDisplay?或 者?setNeedsDisplayInRect,让系统自动调该方法。
2、若使用calayer绘图,只能在drawInContext:?中(类似于drawRect)绘制,或者在delegate中的相应方法绘制。同样也是调用setNeedDisplay等间接调用以上方法
3、若要实时画图,不能使用gestureRecognizer,只能使用touchbegan等方法来调用setNeedsDisplay实时刷新屏幕
什么时候需要重写layoutSubviews和drawRect方法

1、init初始化不会触发layoutSubviews。2、addSubview会触发layoutSubviews。3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化。4、滚动一个UIScrollView会触发layoutSubviews。5、旋转Screen会触发父UIView上的layoutSubviews事件。6、改变一个UIView大小的时候也会触发父U...

Load Port、SMIF

威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...

layoutSubviews drawRect调用时机

1、addSubview(当view的size为0的时候,addSubview也不会调用layoutSubviews。当要给这个view添加子空间的时候不管他的size有没有值都会调用)2、设置view的frame会触发layoutSubviews,当然前提是frame的值前后发生了变化 3、旋转屏幕会触发layoutSubviews 4、ScrollView滚动会触发layoutSubviews 5、改变...

weui actionsheet 里面可以自定义内容么

UIActionSheet和UIAlertView因为UI有特殊的用途,所以本身并不允许你AddSubview之类的函数来自定义界面。解决的办法是继承它,实现一个自定义类,重载layoutSubviews函数 //.h import <UIKit/UIKit.h> interface UIImageActionSheet : UIActionSheet { UIImage *titleImage;} -(id) initWithImage:(UIIm...

面试ios软件工程师没有工作经验怎么办

6. +(void)load; +(void)initialize;有什么用处?7. 为什么其他语言里叫函数调用, objective c里则是给对象发消息(或者谈下对runtime的理解)8. 什么是method swizzling?9. UIView和CALayer是啥关系?10. 如何高性能的给UIImageView加个圆角?(不准说layer.cornerRadius!)11. 使用drawRect有什...

UIStackView入门,想了解吗

另一个需要记住的是,Stack View会被当成Container View。所以它是一个不会被渲染的UIView子类。它不像其他UIView子类一样,会被渲染到屏幕上。这也意味着设置其backgroundColor属性或重载drawRect:方法都不会产生任何效果。subView和arrangedSubView 开始使用Stack View前,我们先看一下它的属性subViews...

苹果软件custom keyboard fur ios 8怎么设置

interface TempView : UIView end //TempView.m import "TempView.h"implementation TempView end 但,当要在drawRect:里面重画(即使不在drawRect:里面干任何事),就不能在键盘区域显示(这点最想不通!)?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 //TempView.h import <...

UIView的layoutSubviews和drawRect方法何时调用

layoutSubviews方便数据计算,drawRect方便视图重绘。layoutSubviews在以下情况下会被调用:1、init初始化不会触发layoutSubviews。2、addSubview会触发layoutSubviews。3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化。4、滚动一个UIScrollView会触发layoutSubviews。5、...

UIView的layoutSubviews和drawRect方法何时调用

layoutSubviews方便数据计算,drawRect方便视图重绘。layoutSubviews在以下情况下会被调用:1、init初始化不会触发layoutSubviews。2、addSubview会触发layoutSubviews。3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化。4、滚动一个UIScrollView会触发layoutSubviews。5、...

UIView的layoutSubviews和drawRect方法何时调用

layoutSubviews方便数据计算,drawRect方便视图重绘。layoutSubviews在以下情况下会被调用:1、init初始化不会触发layoutSubviews。2、addSubview会触发layoutSubviews。3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化。4、滚动一个UIScrollView会触发layoutSubviews。5、...

UIView的layoutSubviews和drawRect方法何时调用

layoutSubviews方便数据计算,drawRect方便视图重绘。layoutSubviews在以下情况下会被调用:1、init初始化不会触发layoutSubviews。2、addSubview会触发layoutSubviews。3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化。4、滚动一个UIScrollView会触发layoutSubviews。5、...

onlayout和layout layoutparams方法 constraintlayout setlayoutparams getlayoutparams layout方法 工厂layout管理方法 layout有什么用 layout_width
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我用银行卡网购了。怎么被注销了? 装电线的时候,不同区域该用什'么规格的电线? SY0401-98《输油输气管道线路工程施工及验收规范》废止后,用什么规范... 汇率一直变动,对中国工业品出口竞争力产生了影响,但是应该用什么... ...整个盘面流出资金大于流入资金,但是股票仍然升.. 请问股市或个股资金的流入与流出是什么意思啊? 股市之中的"资金流入"和"资金流出"分别是什么意思? 什么是股市中的资金流入和流出现象,如何理解 耕升gtx titan x 显卡怎么样 gtxtitanx是游戏显卡吗 柠檬树下的爱 是什么意思啊? UIView的layoutSubviews和drawRect方法何时调用 既然婚礼用的彩纸礼花筒不能过安检那快递物流是怎么过的安检呢 礼花筒放了一年还能用吗 ios 画图必须在drawrect里执行吗 用过的礼花筒会炸吗 ios开发怎么用drawrect画表格 ios drawrect 在什么情况下会被调用 ios drawrect什么时候调用 ios中drawrect和layoutsubviews的区别 宝马E66有无蓝牙播歌 宝马5系2013款蓝牙能放音频吗 有几种?什么是公众号?服务号?订阅?它们是如何注册?如何使用? 和公众号有什么区别吗 微信公众号号码是吗 微信公众号与码有什么不同? 有几种?什么是公众号?服务号?订阅?它们是如何注册?如何使用? 金话筒和俏嘴巴口才哪个好 微信账号和微信公众号账号是一个吗的最新相关信息 和微信公众号有啥区别? ios开发使用drawrect画柱形图有个黑色的边框 如何去掉 顺丰加急件怎么收费 顺丰的加急件的收费是怎样的呢? 一下子拉了很长的稀屎是怎么回事? 今天拉了好多屎,是不是对身体不好,没有腹泻 一人拉屎一拉就很多是怎么了 抖音上歌曲当你走了,歌词想表达的什么意思 小鸡一下子拉了好多屎,怎么回事?急急! 当你走了和当妮走了区别 请问谁有徐真真当你走了mp3的百度资源,谢谢 - 信息提示 乌龟一下子拉了很多褐色的屎,有一个大拇指那么多,本来清澈的水都浑浊了 明明拉了很多屎体重没下降 有一首歌曲和拯救唱的一样的是什么歌曲? 为啥我大便次数很多?一天要拉4,5次以上,而且才吃完饭就想拉,坚果吃多了竟然会拉整粒的坚果! 梦见自己一下子没感觉的拉了好大一堆屎,是什么意思 我家的鱼一下午就拉很多屎,为什么 拉屎的时候就感觉拉不完一样的,拉的时候感觉没拉多少,但其实拉了很多,而且没有以前那种一次性的感觉, win8怎样查看产品密钥? 开机提示“网络初始化失败,网络连接不可用”怎么回事?