欢迎来到代码驿站!

iOS代码

当前位置:首页 > 移动开发 > iOS代码

iOS布局渲染之UIView方法的调用时机详解

时间:2021-03-27 09:29:07|栏目:iOS代码|点击:

前言

APP页面优化对小编来说一直是难题,最近一直在不断的学习和总结 ,发现APP页面优化说到底离不开view的绘制和渲染机制。本文将详细给大家介绍关于iOS布局渲染之UIView方法调用时机的相关内容,下面话不多说了,来一起看看详细的介绍吧。

一、约束

- (void)updateConstraints NS_AVAILABLE_IOS(6_0) NS_REQUIRES_SUPER;

何时触发如下所示:

1、initWithFrame时候调用,但是要求重写以下方法,并返回YES。

+ (BOOL)requiresConstraintBasedLayout NS_AVAILABLE_IOS(6_0);

2、标记为需要更新,下次drawing cycle自动调用。当约束改变时,下次render loop还会自动调用layoutSubviews(布局)

- (void)setNeedsUpdateConstraints NS_AVAILABLE_IOS(6_0);

3、如果有需要更新的标记,立即调用。当约束改变时,下次render loop还会自动调用layoutSubviews(布局)

- (void)updateConstraintsIfNeeded NS_AVAILABLE_IOS(6_0);

二、布局

- (void)layoutSubviews;

1、何时触发如下所示:

initWithFrame时候调用,但是rect的值不能为CGRectZero。

- (instancetype)initWithFrame:(CGRect)frame NS_DESIGNATED_INITIALIZER;

2、标记为需要布局,下次drawing cycle自动调用。

- (void)setNeedsLayout;

3、如果有需要布局的标记,立即调用。

- (void)layoutIfNeeded;

4、自己的frame发生改变时,约束也会导致frame改变。

@property(nonatomic) CGRect frame;

5、添加子视图或者子视图frame改变时,约束也会导致frame改变。

6、视图被添加到UIScrollView,滚动UIScrollView。

三、显示

- (void)drawRect:(CGRect)rect;

何时触发如下所示:

1、initWithFrame时候调用,但是rect的值不能为CGRectZero。

- (instancetype)initWithFrame:(CGRect)frame NS_DESIGNATED_INITIALIZER;

2、标记为需要显示,下次drawing cycle自动调用。

- (void)setNeedsDisplay;

总结

上一篇:iOS下拉、上拉刷新控件的封装

栏    目:iOS代码

下一篇:ios学习笔记之基础数据类型的转换

本文标题:iOS布局渲染之UIView方法的调用时机详解

本文地址:http://www.codeinn.net/misctech/88785.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有