標籤:style blog io color os ar 使用 sp 檔案
介面開發中的 CGPoint、CGSize、CGRect、CGRectMake、window(視窗)、視圖(view)簡單記錄
/* Points. */ struct CGPoint { CGFloat x; CGFloat y; }; typedef struct CGPoint CGPoint;
/* Sizes. */ struct CGSize { CGFloat width; CGFloat height; }; typedef struct CGSize CGSize;
/* Rectangles. */ struct CGRect { CGPoint origin;//位移是相對父視窗的 CGSize size; }; typedef struct CGRect CGRect;
CGPoint CGPointMake ( CGFloat x, CGFloat y );
CGRect CGRectMake ( CGFloat x, CGFloat y, CGFloat width, CGFloat height );
定好origin(起點,左上方),寬與高,就可以畫出一個位置與大小確定的rect(矩形)這個函數被聲明為內嵌函式
CGSize CGSizeMake ( CGFloat width, CGFloat height );
CGrect screenBounds = [ [UIScreen mainScreen]bounds];//返回的是帶有狀態列的Rect CGRect viewBounds = [ [UIScreen mainScreen]applicationFrame];//不包含狀態列的Rect
CGRectlnset(aRect)用來建立較小或較大的矩形(中心點相同)。使用正的內嵌值表示較小的矩形,使用負的內嵌值表示較大的矩形。 CGRectIntersectsRect(rect 1.feet 2)可以判斷矩形結構是否交叉,兩個矩形對象是否重疊。 CGRectZero是一個高度和寬度為零、位於(0,0)的矩形常量。需要建立邊框但還不確定邊框大小或位置時,可以使用此常量。 CGRectOffset使用從源CGRect位移的原點來建立矩形
float offset = 25.0;CGRect r1 = CGRectMake(100, 100, 100, 100);CGRect r2 = CGRectOffset(r1, offset, offset);
CGRectIntersectsRect允許我們確定兩個矩形是否相交
float offset = 25.0; CGRect r1 = CGRectMake(100, 100, 100, 100); CGRect r2 = CGRectMake(150, 150, 100, 100); if (CGRectIntersectsRect(r1, r2)) { NSLog(@"intersecting"); }NSStringFromCGRect可以用來把CGRect顯示到控制台
CGRect r1 = CGRectMake(100, 100, 100, 100); NSLog(@"rect:@%",NSStringFromCGRect(r1));
同樣,CGRectFromString允許我們根據一個字串建立一個CGRect:
NSString *r = @"{0,0},{100,100}"; CGRect r1 = CGRectFromString(r);
View
UIView* myView =[[ UIView alloc]initWithFrame:CGRectMake(0.0,0.0,200.0,400.0)];//這裡建立了一塊畫布,定義了相對於父視窗的位置, 以及大小。
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; self.window.backgroundColor = [UIColor grayColor];//給window設定一個背景色
標準CoreGraphics調用會即時轉換視圖。舉例來說,可以應用剪輯、旋轉或其他平面幾何效果。CocoaTouch支援一整套仿射轉換(轉換、旋轉、縮放和傾斜等)。任何UIView子類的drawRect:方法都提供通過低級Core Graphics調用進行繪圖的進入點。 說明 在調用Core Graphics函數時,記住Quartz從左下方建立座標系,而UIViews的原點位於左上方。每個視圖都有一個半透明要素(alpha),其值介於不透明和透明之間。可以通過[myView setAlpha:value]來調整它,其alpha值介於0.0(完全透明)和1.0(完全不透明)之間。 可以為視圖背景指定一個顏色。[myView setBackgroundColor:[UIColor redColor])可將視圖設定為紅色。
無論使用橫向還是縱向模式,位於螢幕頂部的標準狀態列都佔用20像素的高度。要查詢狀態列邊框,可以調用[[UIApplication sharedApplication] statusBarPrame]。
如果更願意釋放這20像素的螢幕空間,則可以完全隱藏狀態列。使用此UIApplication調用: [UIApplication sharedApplication]setStatusBarHidden:YES animated:NO]。或者,在應用程式的Info.plist檔案中將UIStatusBarHidden設定為<true/>。
要僅在橫向模式下運行應用程式,可以將狀態列方向設定為橫向。如果計劃隱藏狀態列,也應執行此操作(即[[UIApptication sharedApplication] setStatusBarOrientation: UIInEerfaceOrientationLandscapeRight])。這將強制視窗並排顯示井產生正確的橫向鍵盤。 UIScreen對象代表iPhone的物理螢幕([UIScreen malnScreen])。此螢幕對象建立視圖布局邊界與像素空間之間的映射。它返回全屏大小(bounds)或只是應用程式佔用的矩形(applicationFrame)。後面會考慮狀態列以及任何工具列/導覽列(如果已使用)的大小。 預設情況下,UINavigationBar、UIToolbar和UITabBar對象的高度均為44像素。使用這些數字計算iPhone螢幕上的可用空間,在未使用Interface Builder的布局工具時對應用程式進行布局
ios 介面開發中的常見元素