frame和bounds的區(qū)別
- frame指的是:該view在父view坐標(biāo)系統(tǒng)中的位置和大小募舟。(參照點(diǎn)是父控件的坐標(biāo)系統(tǒng))
自己定義的坐標(biāo)系統(tǒng)徘溢,setbound指明了本視圖左上角在該坐標(biāo)系統(tǒng)中的坐標(biāo)景东,默認(rèn)值(0砂轻,0) -
bounds指的是:該view在本身坐標(biāo)系統(tǒng)中 的位置和大小。(參照點(diǎn)是本身坐標(biāo)系統(tǒng))
frame坐標(biāo): 子視圖左上角在父視圖坐標(biāo)系統(tǒng)(bounds坐標(biāo)系統(tǒng))中的坐標(biāo)斤吐,默認(rèn)值(0搔涝,0)
子視圖實(shí)際位置=父視圖實(shí)際位置-父視圖bounds坐標(biāo)+子視圖frame坐標(biāo)
frame和bounds的size問(wèn)題
- 基于frame的坐標(biāo)系統(tǒng):size以左上角位原點(diǎn)厨喂,改變尺寸的
- 基于bounds的坐標(biāo)系統(tǒng):size以中心點(diǎn)位原點(diǎn),改變尺寸的
使用frame的size和center的先后順序問(wèn)題
- 先設(shè)置center后設(shè)置size庄呈,位置會(huì)不對(duì)
- 原因:frame的參照點(diǎn)是父控件的坐標(biāo)系統(tǒng)蜕煌,先center后size,中心點(diǎn)位是原尺寸的中心點(diǎn)诬留,位置會(huì)不對(duì)
- 解決方法: 選設(shè)置size后設(shè)置center