en

hi, it seems you are using microsoft internet explorer. it doesn't match web standard and causes problems browsing this site. please please please use mozilla firefox or google chrome instead. thank you!

zh

哦哦!您正在使用Internet Explorer 瀏覽器,它與我們的網頁標準並不相容,可能會導致畫面顯示不正常。
請改用 Mozilla Firefox 或者 Google Chrome 才能正常瀏覽本網站,謝謝!

11.20.2010

關於 CGRect 的二三事


CGRect 結構可以定義出一個 UIVuew 的矩形範圍,其中包含此矩形的原點和它的大小。下面程式碼將使用無數個 UIVuew 物件,並簡單設定他們的位置大小和背景顏色,拼湊出漸層遞色的效果。(View-based Template)

- (void)viewDidLoad {
    [super viewDidLoad];
    CGRect newFrame;

    //設定CGRect左上角的原點座標
    newFrame.origin = CGPointMake(0, 0);

    //設定CGRect的大小
    newFrame.size = CGSizeMake(10, 10);

上面程式碼也可寫成:

newFrame = CGRectMake(0.0f, 0.0f, 10.0f, 10.0f);
因為 CGRect 本來就只是在界定畫布的大小,所以也就只有這兩個參數可以設定。

    for (int i=1; i!=32; i++)
        for (int j=1; j!=48; j++) {
             UIView *myView = [[UIView alloc] initWithFrame:newFrame];

             //設定myView的背景,使用0~1大小的RGBA型態參數
             myView.backgroundColor = [UIColor colorWithRed:(float)i/31 green:(float)j/47 blue:0 alpha:1];

             //設定myView的中心點座標
             myView.center = CGPointMake(i*10, j*10);

             //將myView顯示於View上,其實就是畫上去的意思
             [self.view addSubview:myView];

             [myView release];
        }
}

ps:若是你在宣告矩形範圍時還不確定其大小,就可以使用 CGRectZero 參數,它代表了一個以(0,0)為原點的矩形,並且長度和寬度皆為0。

CGRect rect = CGRectZero;





沒有留言:

張貼留言