Iphone 石英阴影绘制不正确
因此,我的应用程序中有这样一个图像: 现在这一切都很好,但我正试图减少对图像的依赖,而是尝试动态绘制 好的,我在Iphone 石英阴影绘制不正确,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,因此,我的应用程序中有这样一个图像: 现在这一切都很好,但我正试图减少对图像的依赖,而是尝试动态绘制 好的,我在UIColor:(scrollViewTexturedBackgroundColor)中找到了这幅图像 看起来有点轻,但很甜。我们快到了 现在,我重写UIView子类中的drawRect,使其变暗一点 -(void)drawRect:(CGRect)rect { [[UIColor colorWithWhite:0.0 alpha:0.4] setFill]; UI
UIColor
:(scrollViewTexturedBackgroundColor)中找到了这幅图像
看起来有点轻,但很甜。我们快到了
现在,我重写UIView
子类中的drawRect
,使其变暗一点
-(void)drawRect:(CGRect)rect {
[[UIColor colorWithWhite:0.0 alpha:0.4] setFill];
UIRectFillUsingBlendMode(rect , kCGBlendModeDarken);
}
嘿,虽然不完美,但已经够近了。我可以在以后调整混合模式和颜色。现在是最难的部分。我不知道怎样才能让阴影画得正确。例如,我尝试如下设置我的阴影:
CGContextSetShadowWithColor(ctx, CGSizeMake(0, 6), 5, [[UIColor blackColor]CGColor]);
但是,阴影不会显示。此外,我还尝试保存图形状态,应用阴影,然后恢复它,但当我这样做时,阴影出现,但颜色相反(可能是由于我设置的混合模式)。显然这不是我所希望的
有什么想法吗?阴影是用画出来的东西渲染的。你不能只画一个阴影而不画掉它的实际物体。如果你有办法,请告诉我 我在第一张图片上看到你使用了内部阴影效果。要获得类似的结果,您需要绘制一条在该区域周围投射阴影的路径 在图片上,红色路径是一条笔划为10px的贝塞尔路径。我在图片和路径之间留了一个东西的间隙,以显示路径比背景图片大。 要生成这样的路径,可以使用带rect的贝塞尔路径。按等于笔划宽度一半的负值插入背景图片rect
如果实际上下文比图片大,请在绘制路径之前用picture rect将其剪切。有趣的是,我将研究它。老鼠。我真的是一个新手在石英绘制,我不知道如何绘制贝塞尔路径。关于如何做到这一点,有什么建议吗?UIBezierPath是一条非常狭窄的道路。您可以使用
[UIBezierPath-bezierpath-withrect:
来构造路径,并使用[path-stroke]
来绘制路径。结果非常简单。我花了一段时间才明白,在设置阴影后,我需要绘制贝塞尔曲线。谢谢你的回答!