我正在通过以下操作绘制一个带有笔划的形状
- (void)drawRectCGRect)rect
{
// Draw a cross rectagle
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGContextBeginPath(context);
CGContextMoveToPoint (context, 190, 0);
CGContextAddLineToPoint (context, 220, 0);
CGContextAddLineToPoint (context, 300, 80);
CGContextAddLineToPoint (context, 300, 110);
CGContextClosePath(context);
CGContextSetFillColorWithColor(context, bgColor); // fill color
CGContextSetStrokeColorWithColor(context, [UIColor grayColor].CGColor); // set color for stroke
CGContextSetLineWidth(context, .8); // set width for stroke
CGContextDrawPath(context, kCGPathFillStroke); // do fill and stroke together
CGContextEOClip(context);
CGContextSetShadowWithColor(context, CGSizeMake(1, 1), 1.0, [UIColor whiteColor].CGColor);
CGContextSetBlendMode (context, kCGBlendModeScreen);
CGContextRestoreGState(context);
}
我的结局如下(十字旗)
现在,我也想在十字旗周围投下一些阴影。
我应该怎么做才能做到这一点。请就这个问题给我建议。谢谢。
Best Answer-推荐答案 strong>
CGContextSetShadow 或 CGContextSetShadowWithColor ( documentation 1 , documentation 2 )
在你的情况下,我能够通过 获得阴影
...
CGContextSaveGState(context);
CGContextSetShadowWithColor(context, CGSizeMake(-3 , 2), 4.0, [UIColor whiteColor].CGColor);
CGContextBeginPath(context);
CGContextMoveToPoint (context, 190, 0);
...
然后我从底部删除了这些(剪辑在这里没有做任何事情,为什么是混合模式?)
CGContextEOClip(context);
CGContextSetShadowWithColor(context, CGSizeMake(1, 1), 1.0, [UIColor whiteColor].CGColor);
CGContextSetBlendMode (context, kCGBlendModeScreen);
关于objective-c - 在形状周围绘制阴影,核心图形,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/13297304/
|