3 回答

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
layoutSubviews:
它自己的 界
(不是框架)改變了。 它的一個(gè)直接子視圖的界限發(fā)生了變化。 子視圖將添加到視圖中或從視圖中刪除。
只有在新值不同的情況下,才會(huì)認(rèn)為邊界是更改的, 包括一個(gè)不同的起源
..請(qǐng)?zhí)貏e注意,這就是為什么 layoutSubviews:
每當(dāng)UIScrollView滾動(dòng)時(shí)調(diào)用,因?yàn)樗ㄟ^(guò)更改邊界的來(lái)源來(lái)執(zhí)行滾動(dòng)。 更改框架只會(huì)在大小更改時(shí)更改邊界,因?yàn)檫@是傳播到邊界屬性的唯一內(nèi)容。 視圖層次結(jié)構(gòu)中尚未出現(xiàn)的視圖邊界上的更改將導(dǎo)致調(diào)用 layoutSubviews:
當(dāng)視圖最終被添加到視圖層次結(jié)構(gòu)時(shí).為了完整起見(jiàn):這些觸發(fā)器不會(huì) 直接
調(diào)用layoutSubview,而是調(diào)用 setNeedsLayout
,它設(shè)置/升起一個(gè)旗子。對(duì)于所有視圖,運(yùn)行循環(huán)的每一次迭代 在視圖層次結(jié)構(gòu)中
,這個(gè)標(biāo)志被選中。對(duì)于每個(gè)發(fā)現(xiàn)升起國(guó)旗的視圖, layoutSubviews:
被調(diào)用并重置標(biāo)志。將首先檢查/調(diào)用層次結(jié)構(gòu)上較高的視圖。

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
添加回答
舉報(bào)