在iOS開(kāi)發(fā)中,frame和bounds是兩個(gè)常用的屬性,用于描述視圖的位置和大小。它們之間的區(qū)別如下:
frame是指視圖在其父視圖坐標(biāo)系統(tǒng)中的位置和大小。它的坐標(biāo)是相對(duì)于父視圖的左上角原點(diǎn)的。frame屬性包含了視圖的origin(x和y坐標(biāo))和size(寬度和高度)。bounds是指視圖在其自身坐標(biāo)系統(tǒng)中的位置和大小。它的坐標(biāo)是相對(duì)于視圖自身的左上角原點(diǎn)的。bounds屬性只包含了視圖的origin為(0, 0)和size(寬度和高度)。
總結(jié)來(lái)說(shuō),frame描述了視圖在父視圖坐標(biāo)系統(tǒng)中的位置和大小,而bounds描述了視圖在自身坐標(biāo)系統(tǒng)中的位置和大小。因此,當(dāng)視圖發(fā)生旋轉(zhuǎn)或縮放時(shí),frame會(huì)隨之改變,而bounds保持不變。
需要注意的是,frame和bounds屬性都是CGRect類型的結(jié)構(gòu)體。CGRect結(jié)構(gòu)體包含origin和size屬性,分別表示視圖的起點(diǎn)和大小。