2

我正在尝试绘制带有阴影的自定义视图。我从 iPhone OS 3.2 得到不同的结果。从 3.2 开始,CGContextSetShadowWithColor 的坐标系是否发生了变化?

这是我正在使用的代码:

CGContextRef    graphicContext = UIGraphicsGetCurrentContext();

CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
CGFloat values1[4] = { 0, 0, 0, 1};
CGColorRef blackColor = CGColorCreate (colorspace, values1);
CGContextSetShadowWithColor(graphicContext, CGSizeMake(0, -1), 3, blackColor);
CGColorRelease(blackColor);

CGFloat values2[4] = { .5, .5, 1, 1};
CGColorRef fillColor = CGColorCreate (colorspace, values2);
CGContextSetFillColorWithColor(graphicContext, fillColor);
CGColorRelease(fillColor);
CGContextFillRect(graphicContext,CGRectMake(40, 40, 100, 100));

这是它在 3.1 和 3.2 上的外观

根据 iPhone OS 的版本,我使用投影的所有视图看起来都不同。我错过了什么吗?

4

1 回答 1

1

这在 iPhoneOS 3.2 中有所改变,但不在发行说明中。您必须检查操作系统版本并反转阴影偏移的 y 轴。

正如开发论坛中的一位 Apple 工程师所说这不是错误,而是 API 的变化。

于 2010-07-06T08:21:31.753 回答