frame和bounds的區別
- frame指的是:該view在父view坐標系統中的位置和大小。(參照點是父控件的坐標系統)
自己定義的坐標系統,setbound指明了本視圖左上角在該坐標系統中的坐標,默認值(0,0) -
bounds指的是:該view在本身坐標系統中 的位置和大小。(參照點是本身坐標系統)
frame坐標: 子視圖左上角在父視圖坐標系統(bounds坐標系統)中的坐標,默認值(0,0)
子視圖實際位置=父視圖實際位置-父視圖bounds坐標+子視圖frame坐標
frame和bounds的size問題
- 基于frame的坐標系統:size以左上角位原點,改變尺寸的
- 基于bounds的坐標系統:size以中心點位原點,改變尺寸的
使用frame的size和center的先后順序問題
- 先設置center后設置size,位置會不對
- 原因:frame的參照點是父控件的坐標系統,先center后size,中心點位是原尺寸的中心點,位置會不對
- 解決方法: 選設置size后設置center