UI控件都繼承自 UIView 類型苛让,都繼承了以下3個屬性:
- frame:origin,size
- bounds:origin隅很,size
- center:point
上面這三者之間的聯(lián)系個人覺得在配置視圖的位置角雷,大小信息時: frame = center + bounds (產(chǎn)生的作用上等同)
- frame 的基本作用:定位視圖在父視圖中的位置,和設(shè)置視圖的大小
- center 的基本作用:定位視圖在父視圖中的位置拓提,和 frame 屬性的定位區(qū)別在于基準點的選擇不同。
frame 屬性和 center 屬性在定位作用上的異同
- bounds 基本作用:設(shè)置視圖的大小隧膘,前兩個參數(shù)并不是用于定位代态,而是用來指定本地坐標系。
01. // frame 和 bounds 屬性都是CGRect類型的疹吃,難免認為功能相似
02. - (CGRect)frame{
03. return CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width,self.frame.origin.height);
04. }
05.
06. - (CGRect)bounds{
07. return CGRectMake(0,0,self.bounds.size.width,self.bounds.size.height);
08. }
09. // bounds屬性高于frame屬性蹦疑,任何視圖都一定存在bounds屬性,但不是所有視圖都存在frame屬性的萨驶,某種程度上frame屬性的存在依存于bounds屬性歉摧。 bounds --> 指定坐標系 --> frame來參照指定的坐標系
frame 屬性和 bounds 屬性有關(guān)origin成員的異同
bounds指定坐標系,frame進行定位