bounds和frame的區(qū)別

frame:以父控件左上角為原點(diǎn)
bounds:以自己的左上角為原點(diǎn),bounds x,y永遠(yuǎn)為0(這是錯(cuò)誤的認(rèn)識(shí))

frame和bounds都是用來(lái)描述一塊區(qū)域
frame:描述可視范圍,也就是說(shuō)從左上角的0,0點(diǎn)開(kāi)始延伸,它延伸的區(qū)域就是我們的可視范圍

bounds:描述可視范圍在內(nèi)容的區(qū)域,所有的子控件都有內(nèi)容,它就類(lèi)似于空氣,是看不到的,正常情
                況下,內(nèi)容是無(wú)限大的,所有的子控件其實(shí)都是放在內(nèi)容上的,在可視范圍內(nèi)的內(nèi)容我們才能
                看見(jiàn),所以正常情況下,內(nèi)容的左上角(bounds)與可視范圍(frame)的左上角是重合的,當(dāng)修
                改bounds的x與y都會(huì)導(dǎo)致子控件跟著移動(dòng).需要注意的是,可視范圍(frame)是永遠(yuǎn)不會(huì)變的,它是相對(duì)父控件的.

所有的子控件都是相對(duì)于內(nèi)容
bounds:修改內(nèi)容原點(diǎn)

相對(duì)性:可視范圍相對(duì)于父控件位置永遠(yuǎn)不變
          可視范圍相對(duì)于內(nèi)容,位置改變

如下圖舉例:


bounds.png

默認(rèn)情況下,可視范圍(frame)的原點(diǎn)與內(nèi)容(bounds)的原點(diǎn)是重合的.所以加在內(nèi)容左上角的開(kāi)關(guān)能看到,因?yàn)橐苍诳梢暦秶鷥?nèi),當(dāng)此時(shí)修改內(nèi)容的原點(diǎn),也就是bounds的y值,如y += 10,由于可視范圍是不變的,這時(shí)內(nèi)容的原點(diǎn)就會(huì)變化,y += 10,那么內(nèi)容原點(diǎn)就會(huì)往上移10,此時(shí)內(nèi)容上的控件(本例中指開(kāi)關(guān))也會(huì)跟著
內(nèi)容原點(diǎn)一起上移.

總結(jié):contentOffset(偏移量)的值和bounds的origin值是一樣的,偏移量往可視范圍外偏移是正數(shù),往可視范圍里面偏移是負(fù)數(shù),可視范圍指的是控件的frame

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 閑來(lái)無(wú)事, 想到之前面試時(shí)有問(wèn)到bounds和frame的區(qū)別的問(wèn)題,索性就寫(xiě)了一個(gè)簡(jiǎn)單的控件,驗(yàn)證一下,大家請(qǐng)看...
    LOVE婷閱讀 773評(píng)論 0 0
  • bounds 在本地坐標(biāo)系的矩形區(qū)域,默認(rèn)情況下就是以自身的左上角為(0,0)點(diǎn)。 注意點(diǎn):bounds的(x.y...
    AYangGo閱讀 473評(píng)論 0 0
  • frame: 該view在父view坐標(biāo)系統(tǒng)中的位置和大小。(參照點(diǎn)是,父親的坐標(biāo)系統(tǒng)) bounds:該view...
    Ayaoguai閱讀 271評(píng)論 0 0
  • 原鏈接:http://www.itdecent.cn/p/964313cfbdaa 原作者:西木柚子 僅供我個(gè)人收...
    油菜花花花花閱讀 744評(píng)論 0 1
  • 在iOS中我們會(huì)經(jīng)常遇到frame和bounds,這兩個(gè)概念很相似,但是也有區(qū)別。frame還好理解,但是boun...
    西木柚子閱讀 32,161評(píng)論 29 90

友情鏈接更多精彩內(nèi)容