iOS UIView的frame、bounds和center

首先,frame和bounds都是CGRect類型,CGRect包含一個origin和一個size,origin是CGPoint類型,size是CGSize類型。

那好。frame的origin表示該view的左上角頂點在其superView的坐標系下的坐標,size表示該view的長寬;bounds的origin表示該view的左上角頂點在該view自身坐標系下的坐標,size表示view的長寬;center表示view的中心點在其superView的坐標系下的坐標。

frame和bounds的size表示的是同一個東西,即view的長寬。改變frame的size會影響到bounds的size,反之亦然。

frame的origin定義了view的左上頂點在其superView中的位置,bounds的origin定義了view的左上頂點在其自身坐標系中的位置(我們可以根據(jù)這個坐標反推出其自身坐標系的原點位置,該view的subView都要參考這一位置,就像該view參考的坐標系是其superView的bounds所確定的坐標系)。

center也定義了view在其superView中的位置,再加上bounds的size值就可以推出frame的值。因此,改變center和bounds的size會改變frame值,改變frame值會改變center和bounds的size值。當view應用了transform比如旋轉(zhuǎn)時,frame與center和bounds的size值的關系不再存在,因為應用transform后,bounds和center代表的含義和值都沒改變,但是frame代表的含義變成了包含旋轉(zhuǎn)后圖形的最小矩形。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容