iOS view的frame和bounds之區(qū)別(位置和大畜源场)

前言:學(xué)習(xí)ios開發(fā)有一段時間了,項目也做了兩個了棍厂,今天看視頻望侈,突然發(fā)現(xiàn)view的frame和bound兩個屬性,發(fā)現(xiàn)bound怎么也想不明白勋桶,好像饒你了死胡同里,經(jīng)過一番嘗試和思考侥猬,終于弄明白bound的含義例驹。

一、首先列一下公認的資料:

先看到下面的代碼你肯定就明白了一些:

-(CGRect)frame{

returnCGRectMake(self.frame.origin.x,self.frame.origin.y,self.frame.size.width,self.frame.size.height);

}

-(CGRect)bounds{

returnCGRectMake(0,0,self.frame.size.width,self.frame.size.height);

}

很明顯退唠,bounds的原點是(0,0)點(就是view本身的坐標系統(tǒng)鹃锈,默認永遠都是0炕柔,0點蚯根,除非認為setbounds)弊决,而frame的原點卻是任意的(相對于父視圖中的坐標位置)拜英。再來看張圖就明白了,

frame: 該view在父view坐標系統(tǒng)中的位置和大小盆驹。(參照點是圆丹,父親的坐標系統(tǒng))

bounds:該view在本地坐標系統(tǒng)中的位置和大小。(參照點是躯喇,本地坐標系統(tǒng)辫封,就相當(dāng)于ViewB自己的坐標系統(tǒng),以0,0點為起點)

center:該view的中心點在父view坐標系統(tǒng)中的位置和大小廉丽。(參照點是倦微,父親的坐標系統(tǒng))

我個人認為,bounds稍微有點費解正压,稍不留神欣福,想的多了,就會繞進去焦履。每個view都有一個本地坐標系統(tǒng)拓劝。這個坐標系統(tǒng)作用比較重要,比如觸 摸的回調(diào)函數(shù)中的UITouch里面的>坐標值都是參照這個本地坐標系統(tǒng)的坐標裁良。當(dāng)然bounds這個屬性也是參照這個本地坐標系統(tǒng)來的凿将。其實本地 坐標系統(tǒng)的關(guān)鍵就是要知道的它的原點(0,0)在什么位置(這個位置又是相對于上層的view的本地坐標系統(tǒng)而言的价脾,當(dāng)然最上面的一層view就是 window它的本地坐標系統(tǒng)原點就是屏幕的左上角了)牧抵。通過修改view的bounds屬性可以修改本地坐標系統(tǒng)的原點位置。

所以侨把,我個人認為犀变,bounds影響到子view的位置和大小。

二秋柄、demo演示

UIView*view1=[[UIViewalloc]initWithFrame:CGRectMake(20,20,280,250)];

[view1 setBounds:CGRectMake(-20,-20,280,250)];

view1.backgroundColor=[UIColorredColor];

[self.view addSubview:view1];//添加到self.view

NSLog(@"view1 frame:%@========view1 bounds:%@",NSStringFromCGRect(view1.frame),NSStringFromCGRect(view1.bounds));

UIView*view2=[[UIViewalloc]initWithFrame:CGRectMake(0,0,100,100)];

view2.backgroundColor=[UIColoryellowColor];

[view1 addSubview:view2];//添加到view1上,[此時view1坐標系左上角起點為(-20,-20)]

NSLog(@"view2 frame:%@========view2 bounds:%@",NSStringFromCGRect(view2.frame),NSStringFromCGRect(view2.bounds));

(運行展示获枝,圖中說的很明白了哦)

(log輸出日志表明,每個新的view默認的bounds其實都是(0,0))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末骇笔,一起剝皮案震驚了整個濱河市省店,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌笨触,老刑警劉巖懦傍,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異芦劣,居然都是意外死亡粗俱,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門虚吟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寸认,“玉大人签财,你說我怎么就攤上這事∑” “怎么了唱蒸?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長烛愧。 經(jīng)常有香客問我油宜,道長,這世上最難降的妖魔是什么怜姿? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任慎冤,我火速辦了婚禮,結(jié)果婚禮上沧卢,老公的妹妹穿的比我還像新娘蚁堤。我一直安慰自己,他們只是感情好但狭,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布披诗。 她就那樣靜靜地躺著,像睡著了一般立磁。 火紅的嫁衣襯著肌膚如雪呈队。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天唱歧,我揣著相機與錄音宪摧,去河邊找鬼。 笑死颅崩,一個胖子當(dāng)著我的面吹牛几于,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播沿后,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼沿彭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了尖滚?” 一聲冷哼從身側(cè)響起喉刘,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎漆弄,沒想到半個月后饱搏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡置逻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了备绽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片券坞。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡鬓催,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出恨锚,到底是詐尸還是另有隱情宇驾,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布猴伶,位于F島的核電站课舍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏他挎。R本人自食惡果不足惜筝尾,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望办桨。 院中可真熱鬧筹淫,春花似錦、人聲如沸呢撞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽殊霞。三九已至摧阅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绷蹲,已是汗流浹背棒卷。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瘸右,地道東北人娇跟。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像太颤,于是被迫代替她去往敵國和親苞俘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容