所以,我的应用程序的图像看起来像这样:
现在这很好,但是我正在尝试减少对图像的依赖,而是尝试动态绘制它。
好的,所以我发现这个图像内置于UIColor
:( scrollViewTexturedBackgroundColor)
看起来很轻,但很甜蜜。我们到了那里。
现在,我在drawRect
子类中重写UIView
以使其变暗。
-(void)drawRect:(CGRect)rect {
[[UIColor colorWithWhite:0.0 alpha:0.4] setFill];
UIRectFillUsingBlendMode(rect , kCGBlendModeDarken);
}
嘿,它并不完美,但足够接近。我总是可以调整混合模式&颜色以后。现在来了困难的部分。我无法弄清楚如何正确绘制阴影。例如,我试图设置我的阴影:
CGContextSetShadowWithColor(ctx, CGSizeMake(0, 6), 5, [[UIColor blackColor]CGColor]);
但是,阴影不会显示。此外,我尝试保存图形状态,应用阴影,然后恢复它,但当我这样做时,阴影出现,但颜色反转(可能是由于我设置的混合模式)。显然这不是我所希望的。
有什么想法吗?
答案 0 :(得分:2)
使用绘制的内容渲染阴影。如果没有放下它的实际物体,你不能只画一个阴影。如果您找到了办法,请告诉我。
我在第一张图片上看到你使用内部阴影效果。要获得类似的结果,您需要绘制一条在该区域周围投下阴影的路径。
在图片上,红色路径是一条bezier路径,行程为10px。我在图片和路径之间留下了一个间隙,表明路径比背景图片大。 要生成这样的路径,可以使用带有rect的bezier路径。将背景图片矩形插入负值,该值等于笔划宽度的一半。
如果实际上下文比图片大,请在绘制路径之前用图片rect剪辑它。