0

我正在使用 OpenGL Texture2D 类和 initWithString 方法向用户显示字符串。当使用 iOS 3.0 和 XCode 3.1.3 运行时,所有文本在模拟器中显示为黑色,在手机中显示为白色。更新到 iOS 4.0、XCode 3.2.3 和 iPhone SDK 4.0 后,手机上的文字显示为黑色!不太好,因为我的应用程序几乎完成了,并且艺术品是围绕白色文本设计的。我怎样才能解决这个问题?

更多信息:我正在使用 3G 手机进行测试。texture2D 类也来自 Crashlanding。

4

1 回答 1

0

好的,我找到了这个博客(majicjungle.com)提供的一些很棒的帮助的解决方案。基本上我修改了 Texture2D 类的 initWithString 方法,如链接教程的前几个步骤中所述。

以下是我所做的修改:

1)用这四行替换了 initWithString 中的四行:

colorSpace = CGColorSpaceCreateDeviceRGB();
data = calloc(1, width * height * 4);
context = CGBitmapContextCreate(data, width, height, 8, width * 4, colorSpace,          kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGColorSpaceRelease(colorSpace);

2) 在对 initWithData 的调用中将 kTexture2DPixelFormat_A8 替换为 kTexture2DPixelFormat_RGBA8888

3) 改变 CGContextSetGrayFillColor(context, 1.0, 1.0); 到 CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 1.0);

CGContextSetRGBFillColor 的第 2-4 个参数是 RGB 值。将它们全部设为 1.0 会产生所需的白色字体颜色。

我绝对建议阅读博客文章......它非常有帮助。

于 2010-07-05T21:17:47.980 回答