ios 介面開發中的常見元素

來源:互聯網
上載者:User

標籤: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 介面開發中的常見元素

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.