3 關於bounds跟frame區別

2021-07-10 23:28:20 字數 1255 閱讀 2767

翻譯文件上的
bounds是指這個view在它自己座標系的座標和大小 而frame指的是這個view在它superview的座標系的座標和大小
區別主要在座標系這一塊。很明顯乙個是自己為原點的座標系,乙個是以螢幕為原點的座標系。絕對座標。。。相對座標。。。比如螢幕旋轉的時候就要以相對來重繪。 
frame 如果乙個按鈕,是在**裡,按鈕的frame 的座標也是相對的,並不是相對螢幕,也就是說是相對座標,不是絕對座標

我也想知道任何乙個uiview如何求得它在螢幕上的座標。

view 的frame是view在它的super view 的位置與尺寸。
view 的bounds可以用來幫助它的subview來定位的 ,layoutsubviews。

frame  is  in  terms  of superview's  coordinate  system   

框架是從父檢視的座標系統


bounds   is in  terms  of   local  coordinate  system
是在區域性座標系統

frame和bounds是uiview中的兩個屬性(property)。

frame指的是:該view在父view座標系統中的位置和大小。(參照點是父親的座標系統)

bounds指的是:該view在本身座標系統中 的位置和大小。(參照點是本身座標系統)

-(cgrect)frame

-(cgrect)bounds

很明顯,bounds的原點是(0,0)點,而frame的原點卻是任意的。
frame 如果乙個按鈕,是在**裡,按鈕的frame 的座標也是相對的,並不是相對螢幕,也就是說是相對座標,不是絕對座標。
frame 是相對座標。bounds是絕對座標。android的開發過程中,絕對座標,這樣畫出來的位置都是相對於螢幕的而不是相對於控制項的什麼是絕對座標值,相對座標值?絕對座標是:x,y    就是相對於座標原點的。                   
例如(15,20)相對座標是:@x,y   就是相對於參考點(可以是自己設定的乙個點)。                 
   例如(15,20)相對於參考點(1,1)的座標,表示:@14,19                           
(15,20)相對於參考點(-1,-1)的座標,表示:@16,21
bounds是指這個view在它自己座標系的座標和大小 而frame指的是這個view在它superview的座標系的座標和大小.
區別主要在座標系這一塊。很明顯乙個是自己為原點的座標系,乙個是以螢幕為原點的座標系。

關於ios中bounds與frame

1.ios中的bounds是指相對於檢視自己的座標,所以預設view.bounds.origin 0,0 2.ios中的frame是指相對于父檢視的座標 3.當bounds改變的時候,會影響到frame 比如下面的 cgrect frame cgrectmake 0,0,200,200 uilabe...

關於bounds和frame的區別

今天測試了乙個關於bounds的demo,發現了之前一直不知道的問題 do any additional setup after loading the view.uiview view uiview alloc initwithframe cgrectmake 10,10,200,200 view...

frame與bounds的區別

原來你m,frame.size和bounds.size不總是一樣的 在uiviewcontroller的 void willanimaterotationtointe ceorientation uiinte ceorientation tointe ceorientation duration n...