ios 设置属性的center_ios-坐标系统(详解UIView的frame、bounds跟center属性[图])
1、概要
翻開(kāi)ios官方開(kāi)發(fā)文檔,赫然發(fā)現(xiàn)上面對(duì)這三個(gè)屬性的解釋如下:
frame:描述當(dāng)前視圖在其父視圖中的位置和大小。
bounds:描述當(dāng)前視圖在其自身坐標(biāo)系統(tǒng)中的位置和大小。
center:描述當(dāng)前視圖的中心點(diǎn)在其父視圖中的位置。
是不是有點(diǎn)迷糊?好吧,別急,讓我們先說(shuō)說(shuō)ios的坐標(biāo)系統(tǒng)。
2、ios坐標(biāo)系統(tǒng)
ios以左上角為坐標(biāo)原點(diǎn)(0,0),以原點(diǎn)向右側(cè)為X軸正方向,原點(diǎn)下側(cè)為Y軸正方向,如下圖所示。
ios采用CGPoint來(lái)表示點(diǎn)在坐標(biāo)系上X、Y位置。我們可以通過(guò)CGPointMake(x,y)來(lái)創(chuàng)建一個(gè)坐標(biāo)點(diǎn):CGPoint
point = CGPointMake(80,40)
同時(shí),ios采用CGSize來(lái)表示視圖的寬度和高度,即視圖的大小。我們
可以通過(guò)CGSizeMake(width,height)來(lái)創(chuàng)建一個(gè)矩形的大小,如CGSize size =
CGSizeMake(144,72)將創(chuàng)建一個(gè)寬度為144,高度為72的矩形大小。
而CGRect則是結(jié)合了CGPoint和CGSize,用來(lái)表示矩形的位置和大小。它的origin表示矩形右上角所在位置(CGPoint),size表示矩形的大小(CGSize)。
3、frame、bounds和center的區(qū)別與聯(lián)系
回到frame和bounds屬性,通過(guò)前面的描述不難發(fā)現(xiàn),這兩個(gè)屬性都
是用來(lái)描述視圖的大小(CGSize)和位置(CGPoint)的,兩者都用CGRect表示。不同的是,frame描述的是在其父視圖中的
CGRect,而bounds描述的是在其自身視圖中的CGRect,也就是說(shuō),兩者所在的坐標(biāo)系是不同的。如圖3所示,View
B是View A的子視圖,那么,View B的frame屬性為origin(200,100),size(200,250),而View
B的bounds屬性為origin(0,0),size(200,250)。
center屬性則用CGPoint表示矩形中心點(diǎn)在其父視圖中的位置,如圖3中View
B的center屬性為(300,200)。
frame、bounds和center三個(gè)屬性是相互關(guān)聯(lián)、相互影響的,其中一個(gè)屬性發(fā)生變化,其他屬性也會(huì)跟著變化。
4、frame、bounds和center的使用場(chǎng)景
一般來(lái)說(shuō),bounds屬性比較少用,通常使用frame來(lái)設(shè)置視圖的大小和位置,使用center來(lái)改變(移動(dòng))視圖的位置(也可用frame來(lái)改變位置)。另外,對(duì)視圖進(jìn)行旋轉(zhuǎn)、縮放也都是相對(duì)于center進(jìn)行操作的。
From:
http://unmi.cc/ios-bounds-frame
frame和bounds是UIView中的兩個(gè)屬性(property)。
frame指的是:該view在父view坐標(biāo)系統(tǒng)中的位置和大小。(參照點(diǎn)是父親的坐標(biāo)系統(tǒng))
bounds指的是:該view在本身坐標(biāo)系統(tǒng)中
的位置和大小。(參照點(diǎn)是本身坐標(biāo)系統(tǒng))
-(CGRect)frame{
return
CGRectMake(self.frame.origin.x,self.frame.origin.y,self.frame.size.width,self.frame.size.height);
}
-(CGRect)bounds{
return
CGRectMake(0,0,self.frame.size.width,self.frame.size.height);
}
總結(jié)
以上是生活随笔為你收集整理的ios 设置属性的center_ios-坐标系统(详解UIView的frame、bounds跟center属性[图])的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 客厅西墙挂富春山居图中的富水长流合适吗?
- 下一篇: 东城墙面打磨机前面勾子什么用?