CGRect CGPoint

CGRect CGPoint

每個(gè)視圖都使用一個(gè)邊框定義其界限。這個(gè)邊框指定了視圖的輪廓:其位置、寬度和高度。

我們使用Core Graphics結(jié)構(gòu)宋定義邊框矩形。對(duì)于邊框,這通常表示由原點(diǎn)(CGPoint,x和y)和大小(CGsize,寬度和高度)組成的CGRect矩形。下面是這些類型的簡(jiǎn)要描述。

1.CGRect 

CGRect結(jié)構(gòu)在屏幕上定義了一個(gè)矩形。它包含原點(diǎn)(rect.origin)和大小(rect.size)。需要了解以下CGRect函數(shù)。 

·CGRectMake(origin.x,origin.y,size.width. Size.height)在代碼中定義矩形。 

·NSStringFromCGReot(someCGRect)把CGRect結(jié)構(gòu)轉(zhuǎn)變?yōu)楦袷交址?

·CGRectFromString(aString)由字符串表示恢復(fù)出矩形。 

·CGRectlnset(aRect)用來創(chuàng)建較小或較大的矩形(中心點(diǎn)相同)。使用正的內(nèi)嵌值表示較小的矩形,使用負(fù)的內(nèi)嵌值表示較大的矩形。 

·CGRectIntersectsRect(rect 1.feet 2)可以判斷矩形結(jié)構(gòu)是否交叉,兩個(gè)矩形對(duì)象是否重疊。 

·CGRectZero是一個(gè)高度和寬度為零、位于(0,0)的矩形常量。需要?jiǎng)?chuàng)建邊框但還不確定邊框大小或位置時(shí),可以使用此常量。 

2.CGPoint和CGSize 

前者通過x和y坐標(biāo)定義,后者包括寬度和高度。使用CGPointMake(x,y)創(chuàng)建點(diǎn)。CGSize- Make(width,height)創(chuàng)建大小。雖然這兩個(gè)結(jié)構(gòu)看上去相同(兩個(gè)浮點(diǎn)值),但iPhoneSDK對(duì)二者有所區(qū)別。點(diǎn)表示位置值,大小表示程度值。不能將myFrame.origin設(shè)置為大小。 

與矩形相同,可以將它們與字符串進(jìn)行相互轉(zhuǎn)換,可用如下函數(shù):NSStringFromCGPoint()、 NSStringPromCGgize()、CGSizeFromString()和CGPointFromString()。 

3.定義位置 

可以通過設(shè)置中心點(diǎn)(CGPoint)或邊界(CGRect)定義視圖的位置。與邊框不同,視圖的邊界使用它自己的坐標(biāo)系來反映視圖的邊框。在實(shí)際應(yīng)用中,這表示邊界的原點(diǎn)為(0.0,0.0),大小是它的寬度和高度。 

當(dāng)希望移動(dòng)視圖或重新調(diào)整視圖大小時(shí),可以更新其邊框的原點(diǎn)、中心點(diǎn)或大小。不需要擔(dān)心顯示或隱藏的矩形部分。iPhone將負(fù)責(zé)完成重新繪圖。這允許將視圖作為切實(shí)的對(duì)象對(duì)待,并將呈現(xiàn)問題委托給CocoaTouch。例如[myViewsetFrame:CGRectMake(0.of,50.Of.mywidth, myheight)];。 

4.轉(zhuǎn)換 

標(biāo)準(zhǔn)CoreGraphics調(diào)用會(huì)實(shí)時(shí)轉(zhuǎn)換視圖。舉例來說,可以應(yīng)用剪輯、旋轉(zhuǎn)或其他平面幾何效果。CocoaTouch支持一整套仿射轉(zhuǎn)換(轉(zhuǎn)換、旋轉(zhuǎn)、縮放和傾斜等)。任何UIView子類的drawRect:方法都提供通過低級(jí)Core Graphics調(diào)用進(jìn)行繪圖的入口點(diǎn)。 

說明  在調(diào)用Core Graphics函數(shù)時(shí),記住Quartz從左下方建立坐標(biāo)系,而UIViews的原點(diǎn)位于左上方。 

 5.其他視圖特征 

除了物理屏幕布局之外,還可以設(shè)置以下視圖特征。 

·每個(gè)視圖都有一個(gè)半透明要素(alpha),其值介于不透明和透明之間。可以通過[myView  setAlpha:value]來調(diào)整它,其alpha值介于0.0(完全透明)和1.0(完全不透明)之間。 

·可以為視圖背景指定一個(gè)顏色。[myView setBackgroundColor:[UIColor redColor])可將視圖設(shè)置為紅色。 

6.視圖布局 

圖2-2顯示了普通iPhone應(yīng)用程序屏幕的布局。對(duì)于當(dāng)前發(fā)布的iPhone,屏幕大小在縱向模式下為320X480,在橫向模式下為480X320。無論使用橫向還是縱向模式,位于屏幕頂部的標(biāo)準(zhǔn)狀態(tài)欄都占用20像素的高度。要查詢狀態(tài)欄邊框,可以調(diào)用[[UIApplication sharedApplication] statusBarPrame]。 



如果更愿意釋放這20像素的屏幕空間,則可以完全隱藏狀態(tài)欄。使用此UIApplication調(diào)用: [UIApplication sharedApplication]setStatusBarHidden:YES animated:NO]。或者,在應(yīng)用程序的Info.plist文件中將UIStatusBarHidden設(shè)置為<true/>。 

要僅在橫向模式下運(yùn)行應(yīng)用程序,可以將狀態(tài)欄方向設(shè)置為橫向。如果計(jì)劃隱藏狀態(tài)欄,也應(yīng)執(zhí)行此操作(即[[UIApptication sharedApplication] setStatusBarOrientation: UIInEerfaceOrientationLandscapeRight])。這將強(qiáng)制窗口并排顯示井生成正確的橫向鍵盤。 

UIScreen對(duì)象代表iPhone的物理屏幕([UIScreen malnScreen])。此屏幕對(duì)象建立視圖布局邊界與像素空間之間的映射。它返回全屏大小(bounds)或只是應(yīng)用程序占用的矩形(applicationFrame)。后面會(huì)考慮狀態(tài)欄以及任何工具欄/導(dǎo)航欄(如果已使用)的大小。 

默認(rèn)情況下,UINavigationBar、UIToolbar和UITabBar對(duì)象的高度均為44像素。使用這些數(shù)字計(jì)算iPhone屏幕上的可用空間,在未使用Interface Builder的布局工具時(shí)對(duì)應(yīng)用程序進(jìn)行布局
最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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