layoutSubviews和drawRect

layoutSubviews和drawRectLayoutSubviews    子类可以重写此方法,因为需要更精确执行他们子视图的布局。只有当autoresizing和基于约束的行为的子视图不提供你想要的行为,应重写此方法。该方法不应直接调用。如果你想要强制布局更新,下一次绘图更新之前 应当反向调用setNeedsLayout方法,如果您想要立即更新您的视图的布局,请调用layoutIfNeeded方法。

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

LayoutSubviews   

    子类可以重写此方法,因为需要更精确执行他们子视图的布局。只有当 autoresizing 和基于约束的行为的子视图不提供你想要的行为,应重写此方法。

    该方法不应直接调用。如果你想要强制布局更新,下一次绘图更新之前 应当反向调用 setNeedsLayout 方法,如果您想要立即更新您的视图的布局,请调用 layoutIfNeeded 方法。

1直接调用setLayoutSubviews。

addSubview的时候。

3当view的frame发生改变的时候。 

4滑动UIScrollView的时候。 

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

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

7.removeFromSuperview

PS: init初始化不会触发layoutSubviews


drawRect

1、如果在UIView初始化时没有设置rect大小,将直接导致drawRect不被自动调用。
2、该方法在调用sizeToFit后被调用,。
3、通过设置contentMode属性值为UIViewContentModeRedraw。那么将在每次设置或更改frame的时候自动调用drawRect:。
4、直接调用setNeedsDisplay,或者setNeedsDisplayInRect


PS: 重绘操作在drawRect方法中完成,不建议直接调用drawRect方法,当然调用此方法,结果没有任何效果的。我们调用UIView类中的setNeedsDisplay方法,则程序会自动调用drawRect方法进行重绘。

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

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

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


相关推荐

  • 100+Python编程题给你练(附答案)

    大家如果能坚持独立思考完成以下题目,一定可以帮大家轻松getPython的编程技能。目前,这个项目已经获得了3994Stars,2952Forks。Github地址:Python-programming-exercises首先,这100+练习题根据难易程度分为三个等级:Level1、2和3。下面对如何定义这三个Level进行了说明,大家可以结合自身的学习能…

    2022年4月4日
    105
  • 现场总线及其应用「建议收藏」

    现场总线及其应用「建议收藏」现场总线是应用在生产现场、在微机化测量控制设备之间实现双向串行多节点数字通信的系统,也被称为开放式、数字化、多点通信的底层控制网络。现场总线技术形成了真正分散在现场的完整控制系统,提高了控制系统运行的可靠性,丰富了控制设备的信息内容。为控制信息进入公用数据网络创造了条件,沟通了现场控制设备之间及其与更高控制管理层网络之间的联系,便于实现管控一体化,同时控制网络与数据网络的结合,便于实现信号的远程传…

    2022年5月10日
    48
  • navicat15 激活码【2021免费激活】

    (navicat15 激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月22日
    41
  • pycharm安装包时报错解决

    pycharm安装包时报错解决pycharm报错:NameError:name’pip’isnotdefineddefdo_install(pkgs):try:#importpiptry:frompip._internalimportmainexceptException:…

    2022年5月13日
    38
  • JDBC_5 DBUtils[通俗易懂]

    JDBC_5 DBUtils[通俗易懂]DBUtilscommons-dbutils是Apache组织提供的一个开源JDBC工具类库,封装了针对于数据库的增删改查操作APIQueryRunnerResulSetHandlerDbutils插入举例Connection conn = null; try { QueryRunner runner = new QueryRunner(); conn = JBBCUtils.getConnections3();

    2022年8月9日
    2
  • 用计算机亩换算成平方,公倾,平方米,英亩,市亩,平方公里等常见面积单位转换在线计算器_三贝计算网_23bei.com…「建议收藏」

    本计算器用于土地面积不同单位之间的转换。输入已知面积,选择正确的单位类型,点击确定按钮,可求出其他单位的面积值。常见面积单位的换算关系,如下:1平方厘米=100平方毫米=0.1550平方英寸1平方米=10000平方厘米=1.1960平方码1公倾=10000平方米=2.4711英亩1平方公里=100公顷=0.3861平方英里1平方英寸=6.4516平方厘米1平方码=9平方英尺=0.8361平方米1英…

    2022年4月9日
    1.5K

发表回复

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

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