CGRect 就是 iOS 中,一個 UIView 的【origin (開始位置)】與【 size (大小)】的表示方式。

它是一個 C 的 struct 包含了另外兩個 C  struct ,CGPoint 與 CGSize。


一個位置,就是一個 CGPoint ,可以用兩個浮點數 (x,y) 來表示。其座標系統為畫面的左上角為 0,0 第一個數字表示向右的數字即 x 座標,第二個數字是向下的數字, 即 y 座標。

一個 iPhone/iPodTouch 3.5 吋的直立畫面,320*480 個【 Point 】,iPad 為 768*1024, iPhone/iPodTouch 4吋則為 320*548。point 並非實際的相素,因應不同設備會有不同的的實際解析度,所以這兩個位置浮點數來計算,程式會依機器的狀況來找到最合適的實際像素。另外,對於不同的機器如 4吋 iPhone 與 iPad ,座標位置也會不同,計算方法也不同,不過在計算座標時,你不需太擔心這個問題,因為iOS會會幫你處理。因為要對應不同的實際解析度,所以這兩個數子是浮點數,而不是整數。


一個 CGPoint 你可以這樣產生:

   CGPoint myCGPoint; 
   myCGPoint.x=10.0;
   myCGPoint.y=10.0;

而 CGSize 是表示一個大小,同樣是兩個浮點數,width 與 height,產生的方法可以用下面的程式:

  CGSize mySize;
  mySize.width=300;
  mySize.height=44;

所以一個完整的 CGRect 包含了個 叫 origin  的 CGPoint 資料,和一個叫 size 的 CGSize 資料,完整的產成方式就成了。


  CGRect myCGRect;

  CGPoint myCGPoint; 
  myCGPoint.x=10;
  myCGPoint.y=10;

  CGSize mySize;
  mySize.width=300;
  mySize.height=44;

  myCGRect.origin=myCGPoint;
  myCGRect.size=mySize;


但這實在太麻煩了,所以在 XCode 中,提供了一個 C function 來簡單產生 CGRect,叫做 CGRectMake。如果使用這個 function 上面的程式碼就可以簡寫成:
  

CGRect myCGRect=CGRectMake(10, 10, 300, 44);

 

   

arrow
arrow

    shenfive 發表在 痞客邦 留言(1) 人氣()