欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS布局渲染之UIView方法的調(diào)用時(shí)機(jī)詳解

 更新時(shí)間:2018年07月01日 11:47:51   作者:windtersharp  
在你剛開始開發(fā) iOS 應(yīng)用時(shí),最難避免或者是調(diào)試的就是和布局相關(guān)的問題,下面這篇文章主要給大家介紹了關(guān)于iOS布局渲染之UIView方法調(diào)用時(shí)機(jī)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

APP頁(yè)面優(yōu)化對(duì)小編來說一直是難題,最近一直在不斷的學(xué)習(xí)和總結(jié) ,發(fā)現(xiàn)APP頁(yè)面優(yōu)化說到底離不開view的繪制和渲染機(jī)制。本文將詳細(xì)給大家介紹關(guān)于iOS布局渲染之UIView方法調(diào)用時(shí)機(jī)的相關(guān)內(nèi)容,下面話不多說了,來一起看看詳細(xì)的介紹吧。

一、約束

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

何時(shí)觸發(fā)如下所示:

1、initWithFrame時(shí)候調(diào)用,但是要求重寫以下方法,并返回YES。

+ (BOOL)requiresConstraintBasedLayout NS_AVAILABLE_IOS(6_0);

2、標(biāo)記為需要更新,下次drawing cycle自動(dòng)調(diào)用。當(dāng)約束改變時(shí),下次render loop還會(huì)自動(dòng)調(diào)用layoutSubviews(布局)

- (void)setNeedsUpdateConstraints NS_AVAILABLE_IOS(6_0);

3、如果有需要更新的標(biāo)記,立即調(diào)用。當(dāng)約束改變時(shí),下次render loop還會(huì)自動(dòng)調(diào)用layoutSubviews(布局)

- (void)updateConstraintsIfNeeded NS_AVAILABLE_IOS(6_0);

二、布局

- (void)layoutSubviews;

1、何時(shí)觸發(fā)如下所示:

initWithFrame時(shí)候調(diào)用,但是rect的值不能為CGRectZero。

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

2、標(biāo)記為需要布局,下次drawing cycle自動(dòng)調(diào)用。

- (void)setNeedsLayout;

3、如果有需要布局的標(biāo)記,立即調(diào)用。

- (void)layoutIfNeeded;

4、自己的frame發(fā)生改變時(shí),約束也會(huì)導(dǎo)致frame改變。

@property(nonatomic) CGRect frame;

5、添加子視圖或者子視圖frame改變時(shí),約束也會(huì)導(dǎo)致frame改變。

6、視圖被添加到UIScrollView,滾動(dòng)UIScrollView。

三、顯示

- (void)drawRect:(CGRect)rect;

何時(shí)觸發(fā)如下所示:

1、initWithFrame時(shí)候調(diào)用,但是rect的值不能為CGRectZero。

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

2、標(biāo)記為需要顯示,下次drawing cycle自動(dòng)調(diào)用。

- (void)setNeedsDisplay;

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

最新評(píng)論