我一直在开发iOS应用程序,最近“升级”到xCode 4.3.1和iOS 5.1模拟器,并且只有一个字符有一个很奇怪的问题。它在字符查看器中被称为“重复检查标记”,它在5.0.1和更低版本的应用程序中看起来很棒,并使用.textColor = [UIColor redColor]着色。在5.1中,它在模拟器中显示为黑色,并且由于我的手机已越狱,所以在实际设备上我没有在5.1中对其进行检查。如果我放入任何其他角色,它会显示为红色,但是这个特定角色总是显示为黑色。如果我在它之前放置一个空格,它会显示为红色,但是因为我正在使用图层进行边框,所以间距已关闭。下面是实际的代码,但我尝试了一个更简单的标签并且有相同的问题。IOS 5.1 UILabel与重复选中标记字符忽略TextColor
isChecked = [[[UILabel alloc] initWithFrame:CGRectMake(20.0,9.0,20,20)] autorelease];
isChecked.font = [UIFont boldSystemFontOfSize:24.0];
isChecked.backgroundColor = [UIColor clearColor];
isChecked.textColor = [UIColor redColor];
isChecked.layer.borderColor = [UIColor blackColor].CGColor;
isChecked.layer.borderWidth = 2.0;
isChecked.text = @"✔";
isChecked.tag = 2;
[cell.contentView addSubview:isChecked];
任何人遇到这种或其它特殊字符和UILabel.textColor问题?任何建议的解决方法?我试过暂时删除图层,甚至创建一个新的最小标签,如果只有这个字符,则结果为黑色,如果有其他字符,则设置为红色。
如果您使用unicode转义(@“\ u_whatever_”)而不是在源代码中使用unicode字符,会发生什么?我记得在某个地方看到,把unicode字符放在源代码中是个不好的主意,但我没有明确的来源。 – jrturton 2012-03-13 17:33:02
更新和修复适用于我,但仍然很奇怪。如果有人遇到这个晦涩的问题,我发现使用命名字体而不是系统字体似乎可以解决它。 – skymatt70 2012-03-13 17:38:44
@ jrturton,伟大的建议,并表现相同。如果只是那个字符和系统字体,总是黑色的,但是我会离开@“\ u2714”,因为我认为读取代码更加精确。 – skymatt70 2012-03-13 17:43:04