你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> IOS開發之為形狀增加陰影

IOS開發之為形狀增加陰影

編輯:關於IOS

1 前言
使用 CGContextSetShadow 過程,為繪制在圖形環境上的形狀應用陰影。

CGContextSetShadowWithColor 過程:這個過程接受的參數和 CGContextSetShadow 完全相同,不過加了一個 CGColorRef 類型的參數,用於設 置陰影的顏色。

2 代碼實例

ZYViewControllerView.m



  -(void)drawRect:(CGRect)rect{ 
    [self drawRectAtTopOfScreen]; 
    //由於第一個矩形畫的時候已經有了陰影,所以就算第二個矩形繪圖時候沒有設置依然有陰影 
    [self drawRectAtBottomOfScreen]; 
} 
 
- (void) drawRectAtTopOfScreen{ 
    CGContextRef currentContext = UIGraphicsGetCurrentContext(); 
    //用灰色設置背景顏色 
    /*第二個參數:陰影的位移,由 CGSize 類型值指定,從每個形狀要應用陰影的右下部分開始。位移的 x 值越大,形狀 
    右邊的陰影就擴散得越遠。位移的 y 值越大,下部的陰影就越低。 
     第三個參數:陰影的模糊值,以浮點值(CGFloat)來指定。指定 0.0f 將導致陰影成為固態形狀。這個值越高,陰影就越 
     模糊。我們很快能看到例子。 
     */ 
    CGContextSetShadowWithColor(currentContext,CGSizeMake(10.0f, 10.0f), 20.0f,[[UIColor grayColor] CGColor]); 
    /* Create the path first. Just the path handle. */ 
    CGMutablePathRef path = CGPathCreateMutable(); 
    CGRect firstRect = CGRectMake(55.0f, 60.0f,150.0f, 150.0f); 
    CGPathAddRect(path,NULL, firstRect); 
    CGContextAddPath(currentContext, path); 
    [[UIColor colorWithRed:0.20f green:0.60f blue:0.80f alpha:1.0f] setFill]; 
    CGContextDrawPath(currentContext, kCGPathFill); 
    CGPathRelease(path); 
} 
- (void) drawRectAtBottomOfScreen{ 
    CGContextRef currentContext = UIGraphicsGetCurrentContext(); 
    CGMutablePathRef secondPath = CGPathCreateMutable(); 
    CGRect secondRect = CGRectMake(150.0f, 250.0f, 100.0f,100.0f); 
    CGPathAddRect(secondPath, NULL,secondRect); 
    CGContextAddPath(currentContext, secondPath); 
    [[UIColor purpleColor] setFill]; 
    CGContextDrawPath(currentContext, kCGPathFill); 
    CGPathRelease(secondPath); 
} 

-(void)drawRect:(CGRect)rect{
    [self drawRectAtTopOfScreen];
    //由於第一個矩形畫的時候已經有了陰影,所以就算第二個矩形繪圖時候沒有設置依然有陰影
    [self drawRectAtBottomOfScreen];
}

- (void) drawRectAtTopOfScreen{
    CGContextRef currentContext = UIGraphicsGetCurrentContext();
    //用灰色設置背景顏色
    /*第二個參數:陰影的位移,由 CGSize 類型值指定,從每個形狀要應用陰影的右下部分開始。位移的 x 值越大,形狀
    右邊的陰影就擴散得越遠。位移的 y 值越大,下部的陰影就越低。
     第三個參數:陰影的模糊值,以浮點值(CGFloat)來指定。指定 0.0f 將導致陰影成為固態形狀。這個值越高,陰影就越
     模糊。我們很快能看到例子。
     */
    CGContextSetShadowWithColor(currentContext,CGSizeMake(10.0f, 10.0f), 20.0f,[[UIColor grayColor] CGColor]);
    /* Create the path first. Just the path handle. */
    CGMutablePathRef path = CGPathCreateMutable();
    CGRect firstRect = CGRectMake(55.0f, 60.0f,150.0f, 150.0f);
    CGPathAddRect(path,NULL, firstRect);
    CGContextAddPath(currentContext, path);
    [[UIColor colorWithRed:0.20f green:0.60f blue:0.80f alpha:1.0f] setFill];
    CGContextDrawPath(currentContext, kCGPathFill);
    CGPathRelease(path);
}
- (void) drawRectAtBottomOfScreen{
    CGContextRef currentContext = UIGraphicsGetCurrentContext();
    CGMutablePathRef secondPath = CGPathCreateMutable();
    CGRect secondRect = CGRectMake(150.0f, 250.0f, 100.0f,100.0f);
    CGPathAddRect(secondPath, NULL,secondRect);
    CGContextAddPath(currentContext, secondPath);
    [[UIColor purpleColor] setFill];
    CGContextDrawPath(currentContext, kCGPathFill);
    CGPathRelease(secondPath);
}
 
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved