漸層顏色通常被使用在調色盤這類需要豐富色域的工具中,或是一些特殊的使用者介面設計裡,下面程式碼將示範如何製作一個 CGGradientRef 漸層顏色的模型,與它的使用方式,其程式碼如下。
首先是製作漸層顏色模型的方法。
//使用RGB顏色模型
CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
//漸層中所包含的關鍵顏色 RGBA
CGFloat components[] = {1.0, 0.0, 0.0, 1.0, //紅色 不透明
0.0, 1.0, 0.0, 1.0, //綠色 不透明
0.0, 0.0, 1.0, 1.0, //藍色 不透明
1.0, 0.0, 0.0, 1.0};//紅色 不透明
//關鍵顏色所出現的位置
CGFloat locations[] = {0.0, 0.33, 0.66, 1.0};
//關鍵顏色的個數
size_t count = 4;
//製作漸層顏色模型
CGGradientRef gradient = CGGradientCreateWithColorComponents(rgb, components, locations, count);
CGColorSpaceRelease(rgb);
上述程式碼在製作漸層顏色模型中,包含四個重要參數,分別使所要使用的顏色模型、漸層中所包含的關鍵顏色、關鍵顏色出現的位置與它的數目。觀察上述程式碼可以得知在顏色模型上我們使用 RGB 傳統的色彩模型,因此下面關鍵顏色的設定中就分別依照 RGB 模型的設定分別給予 0 ~ 1 的 RGBA 數值陣列,四個數值為一組顏色其中我們分別設定了四組顏色;接著是這些關鍵顏色的出現位置,如同一般繪圖軟體在製作漸層時一樣,光是給與顏色還不足製作漸層,還必須給予這些顏色所出現的位置,如程式碼第 11 行所示,分別給予這四個關鍵顏色出現位置,採用 0 ~ 1 的表示法,最後則是關鍵顏色的個數,這參數可以讓您在漸層的使用上更為靈活。
有了漸層顏色模型之後,下面就是將漸層顏色模型實際套用在繪圖上的方法。
//製作ImageView
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10.0, 100.0, 300.0, 30.0)];
//開始繪圖
UIGraphicsBeginImageContext(imageView.frame.size);
//指定畫布
CGContextRef context = UIGraphicsGetCurrentContext();
//繪製漸層線條並儲存畫布
CGContextDrawLinearGradient(context, gradient, CGPointMake(0.0, 0.0), CGPointMake(300.0, 0.0), 0);
CGContextSaveGState(context);
//將畫布指定給ImageView
imageView.image = UIGraphicsGetImageFromCurrentImageContext();
//結束繪圖
UIGraphicsEndImageContext();
//將ImageView顯示於畫面
[self.view addSubview:imageView];
[imageView release];
上述程式碼其實就只是基本的 CoreGraphic 繪圖方法,除了線段漸層外,也有放射狀的漸層,其程式瑪如下。
CGContextDrawRadialGradient(context, gradient, CGPointMake(150, 150), 120, CGPointMake(150, 150), 0, 0);
沒有留言:
張貼留言