你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> IOS 繪制 之漸變

IOS 繪制 之漸變

編輯:關於IOS

分為線性漸變和徑向漸變
一 創建顏色空間
二 創建漸變
三 設置裁剪區域
四 繪制漸變
五 釋放對象

線性漸變

#pragma mark 線性漸變
- (void)drawGradient:(CGContextRef)context
{
    //步驟:
        /*
         一  創建顏色空間
         二  創建漸變
         三  設置裁剪區域
         四  繪制漸變
         五  釋放對象
         */

    //繪制漸變

    //在計算機設置中,直接選擇rgb即可,其他顏色空間暫時不用考慮。
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

    //1.創建漸變
    /*
     1.<#CGColorSpaceRef space#> : 顏色空間 rgb
     2.<#const CGFloat *components#> : 數組 每四個一組 表示一個顏色 {r,g,b,a ,r,g,b,a}
     3.<#const CGFloat *locations#>:表示漸變的開始位置

     */
    CGFloat components[8] = {1.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0};
    CGFloat locations[2] = {0.0,1.0};

    CGGradientRef gradient=CGGradientCreateWithColorComponents(colorSpace, components, locations, 2);
    //漸變區域裁剪
//    CGContextClipToRect(context, CGRectMake(0, 360, 200, 100));
    CGRect rect[5] = {CGRectMake(0, 0, 100, 100),CGRectMake(100, 100, 100, 100),CGRectMake(200, 0, 100, 100),CGRectMake(0, 200, 100, 100),CGRectMake(200, 200, 100, 100)};
    CGContextClipToRects(context, rect, 5);
    //繪制漸變
    CGContextDrawLinearGradient(context, gradient, CGPointMake(0.0, 0.0), CGPointMake(370, 460.0), kCGGradientDrawsAfterEndLocation);
    //釋放對象
    CGColorSpaceRelease(colorSpace);
    CGGradientRelease(gradient);
}

徑向漸變

#pragma mark 徑向漸變
- (void)drawGradient2:(CGContextRef)context
{
    //步驟:
    /*
     一  創建顏色空間
     二  創建漸變
     三  設置裁剪區域
     四  繪制漸變
     五  釋放對象
     */

    //繪制漸變

    //在計算機設置中,直接選擇rgb即可,其他顏色空間暫時不用考慮。
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

    //1.創建漸變
    /*
     1.<#CGColorSpaceRef space#> : 顏色空間 rgb
     2.<#const CGFloat *components#> : 數組 每四個一組 表示一個顏色 {r,g,b,a ,r,g,b,a}
     3.<#const CGFloat *locations#>:表示漸變的開始位置

     */
    CGFloat components[8] = {1.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0};
    CGFloat locations[2] = {0.3,1.0};

    CGGradientRef gradient=CGGradientCreateWithColorComponents(colorSpace, components, locations, 2);

    //繪制漸變
    /*
        參數:
        一 context
        二 gradient
        三 statCenter 起始中心點
        四 sartRadius 起始半徑 指定為0  從圓心漸變  否則  中心位置不漸變
        五 endCenter  結束中心點(通常與起始專心點重合)
        六 endRadius  結束半徑
        七 漸變填充方式

     */
    CGContextDrawRadialGradient(context, gradient, CGPointMake(160, 230), 10, CGPointMake(0, 100), 150,kCGGradientDrawsAfterEndLocation);

    //釋放對象
    CGColorSpaceRelease(colorSpace);
    CGGradientRelease(gradient);

}

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved