我用这段代码创建了一个带有漂亮阴影的圆圈(我在 iPhone 上使用 MonoTouch.net,Objective-C 答案当然很好)
UIGraphics.PushContext (ctx);
SizeF shadowSize = new SizeF (0f, -3f);
ctx.SetRGBFillColor (194f / 255f, 212f / 255f, 238f / 255f, 1f);
ctx.SetAllowsAntialiasing (true);
ctx.SetShadowWithColor (shadowSize, 20, new CGColor (0.9f, 0.7f));
RectangleF area = new RectangleF (35f, 15f, 210f, 210f);
ctx.FillEllipseInRect (area);
UIGraphics.PopContext ();
然后我想为其添加弧线和直线。当我这样做时,颜色和阴影等似乎一直存在?在绘制 UIView 时如何“重新开始”? (它们都在同一个 UIView 中;我正在构建图像)
如果您想清除绘制的所有内容,以便拥有空白画布,请尝试CGContextClearRect http://developer.apple.com/iphone/library/DOCUMENTATION/GraphicsImaging/Reference/CGContext/Reference/reference.html#//apple_ref/doc/c_ref/CGContextClearRect在画任何东西之前。
但我认为你的意思是你希望阴影、填充颜色等仅适用于该椭圆,而不适用于你之后绘制的东西。为此,您需要再次调用相同的状态设置方法,但使用不同的参数。例如,CGContextSetShadowWithColor http://developer.apple.com/iphone/library/DOCUMENTATION/GraphicsImaging/Reference/CGContext/Reference/reference.html#//apple_ref/c/func/CGContextSetShadowWithColor需要阴影颜色。但如果你通过了NULL
对于该参数,它将禁用阴影。
另请参阅CGContextSetShadow文档 http://developer.apple.com/iphone/library/DOCUMENTATION/GraphicsImaging/Reference/CGContext/Reference/reference.html#//apple_ref/c/func/CGContextSetShadow,其中包含有关禁用阴影的所有方法的注释。选择最适合您的一款。
我认为你的主要问题是你没有利用苹果优秀的文档。据我所知,MonoTouch.net 本质上是将 Objective-C API 映射到具有相似或相同符号名称的 .NET 模块。因此,通过 Google 快速搜索,您应该能够在 iPhone OS 参考库中找到相应的文档。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)