国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS布局渲染之UIView方法的調用時機詳解

2019-10-21 18:40:48
字體:
來源:轉載
供稿:網友

前言

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;

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西贡区| 资阳市| 布尔津县| 桃源县| 温州市| 乐山市| 云阳县| 瑞金市| 金坛市| 海南省| 岳普湖县| 德化县| 新野县| 余江县| 都兰县| 昌都县| 丘北县| 德庆县| 嵊州市| 新宾| 大新县| 常熟市| 徐闻县| 临城县| 临邑县| 健康| 赞皇县| 邵武市| 广德县| 海阳市| 澄江县| 昌都县| 焦作市| 阿鲁科尔沁旗| 康保县| 大理市| 广安市| 油尖旺区| 滨州市| 灌云县| 于都县|