開發中調整view的時候的經常會遇到frame和bounds,剛開始看的時候不是很清楚,不過看了一下官方文件,frame是確定檢視在父檢視中的位置,和本身的大小,bounds確定可以確定子檢視在當前檢視中的位置,還可以改變view的大小,如果bounds確定大小,那麼view的檢視優先選擇的bounds中的寬高。center的位置是相對于父座標系中的定位。蘋果官方給了一張供參考:
如果還不是很清晰,可以參考一下frame和bounds的中**:
-(cgrect)frame當然為了更好的理解以上的概念,寫個小demo實戰了一下,viewdidload將新增在view中,然後在上新增乙個view:-(cgrect)bounds
[self.view addsubview:girlimageview];//新增到父檢視中
nslog(@"girlimageview frame:%@------girlimageview bounds:%@",nsstringfromcgrect(girlimageview.frame),nsstringfromcgrect(girlimageview.bounds));
uiview *childview = [[uiview alloc] initwithframe:cgrectmake(0, 0, 100, 100)];
childview.backgroundcolor = [uicolor yellowcolor];
[girlimageview addsubview:childview];
nslog(@"childview frame:%@-------childview bounds:%@",nsstringfromcgrect(childview.frame),nsstringfromcgrect(childview.bounds));
具體效果如下:
輸出結果:
2015-04-03 11:50:00.326 mycontraint[1929:98282] girlimageview frame:, }------girlimageview bounds:, }這個時候如果改變一下uiimageview的bounds,**如下:2015-04-03 11:50:00.327 mycontraint[1929:98282] childview frame:, }-------childview bounds:, }
//改變view中內部原點的位置,同樣可以改變frame的寬高
[girlimageview setbounds:cgrectmake(-30, -30, 240, 230)];
[self.view addsubview:girlimageview];//新增到父檢視中
nslog(@"girlimageview frame:%@------girlimageview bounds:%@",nsstringfromcgrect(girlimageview.frame),nsstringfromcgrect(girlimageview.bounds));
效果:
列印效果如下:
2015-04-03 11:57:06.738 mycontraint[2019:102665] girlimageview frame:, }------girlimageview bounds:, }通過以上的**的演示,frame和bounds之間的關係應該很清晰了,如果有疑問,歡迎共同**~2015-04-03 11:57:06.739 mycontraint[2019:102665] childview frame:, }-------childview bounds:, }
iOS開發 View中frame和bounds區別
開發中調整view的時候的經常會遇到frame和bounds,剛開始看的時候不是很清楚,不過看了一下官方文件,frame是確定檢視在父檢視中的位置,和本身的大小,bounds確定可以確定子檢視在當前檢視中的位置,還可以改變view的大小,如果bounds確定大小,那麼view的檢視優先選擇的boun...
修改IB中view的frame
問題案例 自定義cell用xib定義,cell子檢視中某個label的內容由網路獲取,因為這個label加了邊框,在獲取資料後需要調整寬度 用sizetofit方法即可 實測發現,這個label有時候寬度確實根據內容變化了,邊框顯示良好,但有時候還是ib裡定義的寬度。原因 想到的解決方案 2.ib裡...
關於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...