UIView的背景漸變


//繪制背景漸變

    /*

     CGCradientCreateWithColorComponents函數需要四個參數:

     色彩空間:(Color Space)這是一個色彩范圍的容器,類型必須是CGColorSpaceRef.對於這個參數,我們可以傳入CGColorSpaceCreateDeviceRGB函數的返回值,它將給我們一個RGB色彩空間。

     顏色分量的數組:這個數組必須包含CGFloat類型的紅、綠、藍和alpha值。數組中元素的數量和接下來兩個參數密切。從本質來講,你必須讓這個數組包含足夠的值,用來指定第四個參數中位置的數量。所以如果你需要兩個位置位置(起點和終點),那么你必須為數組提供兩種顏色

     位置數組,顏色數組中各個顏色的位置:此參數控制該漸變從一種顏色過渡到另一種顏色的速度有多快。

     位置的數量:這個參數指明了我們需要多少顏色和位置。

     */

    CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();

    CGFloat colors[] =

    {

        51.0 / 255.0, 160.0 / 255.0, 0.0 / 255.0, 1.00,

        68.0 / 255.0, 198.0 / 255.0, 0.0 / 255.0, 1.00,

//        0.0 / 255.0,  50.0 / 255.0, 126.0 / 255.0, 1.00,

    };

    CGGradientRef myGradient = CGGradientCreateWithColorComponents

    (rgb, colors, NULL, sizeof(colors)/(sizeof(colors[0])*4));

    // Allocate bitmap context

    CGContextRef bitmapContext = CGBitmapContextCreate(NULL, 320, TITLE_CONTROL_HEIGHT, 8, 4 * 320, CGColorSpaceCreateDeviceRGB(), kCGImageAlphaNoneSkipFirst);

    // Draw Gradient Here

    /*

     創建好線性漸變后,我們將使用CGContextDrawLinearGradient過程在圖形上下文中繪制,此過程需要五個參數:

     Graphics context 指定用於繪制線性漸變的圖形上下文。

     Axial gradient 我們使用CGGradientCreateWithColorComponents函數創建的線性漸變對象的句柄

     start point 圖形上下文中的一個CGPoint類型的點,表示漸變的起點。

     End Point表示漸變的終點。 

     Gradient drawing options 當你的起點或者終點不在圖形上下文的邊緣內時,指定該如何處理。你可以使用你的開始或結束顏色來填充漸變以外的空間。此參數為以下值之一:KCGGradientDrawsAfterEndLocation擴展整個漸變到漸變的終點之后的所有點 KCGGradientDrawsBeforeStartLocation擴展整個漸變到漸變的起點之前的所有點。0不擴展該漸變。

     */

    CGContextDrawLinearGradient(bitmapContext, myGradient, CGPointMake(160.0f, 0.0f),CGPointMake(160.0f, TITLE_CONTROL_HEIGHT),  kCGGradientDrawsBeforeStartLocation);

    // Create a CGImage from context

    CGImageRef cgImage = CGBitmapContextCreateImage(bitmapContext);

    // Create a UIImage from CGImage

    UIImage *uiImage = [UIImage imageWithCGImage:cgImage];

    // Release the CGImage

    CGImageRelease(cgImage);

    // Release the bitmap context

    CGContextRelease(bitmapContext);

    // Create the patterned UIColor and set as background color

    [titleScrollViewsetBackgroundColor:[UIColorcolorWithPatternImage:uiImage]];

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM