Shadows
阴影的3个特征
x偏移
y偏移
模糊度
可以生成一个彩色的阴影
模糊度参数产生的不同效果
普通的阴影
1
保存图形上下文状态
2
调用函数CGContextSetShadow, 传递模参数
3
执行所有的绘制您要申请的阴影。
4
还原图形状态
彩色的阴影
1
保存图形上下文状态
2
创建一个颜色空间
3
创建CGColor object 指定阴影的颜色
4
调用函数CGContextSetShadow, 传递模参数
5
Perform all the drawing to which you want to apply shadows.
6
还原图形状态
例子代码
下面程序是画一个普通阴影和一个彩色阴影
void MyDrawWithShadows (CGContextRef myContext, // 1
float wd, float ht);
{
CGSize myShadowOffset = CGSizeMake (-15, 20);// 2
float myColorValues[] = {1, 0, 0, .6};// 3
CGColorRef myColor;// 4
CGColorSpaceRef myColorSpace;// 5
CGContextSaveGState(myContext);// 6
//普通阴影
CGContextSetShadow (myContext, myShadowOffset, 5); // 7
// 接下来画出我们想要的图形,自动的会生成对应的阴影// 8
CGContextSetRGBFillColor (myContext, 0, 1, 0, 1);
CGContextFillRect (myContext, CGRectMake (wd/3 + 75, ht/2 , wd/4, ht/4));
//彩色阴影
myColorSpace = CGColorSpaceCreateDeviceRGB ();// 9
myColor = CGColorCreate (myColorSpace, myColorValues);// 10
CGContextSetShadowWithColor (myContext, myShadowOffset, 5, myColor);// 11
// 接下来画出我们想要的图形,自动的会生成对应的阴影// 12
CGContextSetRGBFillColor (myContext, 0, 0, 1, 1);
CGContextFillRect (myContext, CGRectMake (wd/3-75,ht/2-100,wd/4,ht/4));
CGColorRelease (myColor);// 13
CGColorSpaceRelease (myColorSpace); // 14
CGContextRestoreGState(myContext);// 15
}