我正在尝试显示带有西班牙语字母Ñ的单词,但该字母仅在不使用变音符的情况下显示为大写N。但是,小字母ñ已正确显示。知道如何在iOS中以默认字体在CATextLayer中显示字母吗?

我在下面给出了示例代码。

 CATextLayer *tempLayerForTextWith = [CATextLayer layer];
    tempLayerForTextWith.frame = CGRectMake(10, 10, 100, 100);
    //tempLayerForTextWith.font = [[UIFont boldSystemFontOfSize:actualFontSize] fontName];
    //tempLayerForTextWith.fontSize = actualFontSize;
    tempLayerForTextWith.string = @"ñÑ";
    tempLayerForTextWith.backgroundColor = [[UIColor lightGrayColor] CGColor];
    wordLayer.foregroundColor = textColor;
    [contentView.layer addSublayer:tempLayerForTextWith];


对于德语字母Ä,Ö,Ü,我也遇到同样的问题。如果您知道,请建议如何解决。

布拉德的问题后更新。

我发现只有第一行出现此问题。如果我将文本设置为长文本,以便使用下面的代码进行换行,那么我发现第二行变音符的绘制正确。 CATextLayer中是否有一种方法可以指定文本的基线,因为iOS设置的基线似乎已切断了文本的开头。

tempLayerForTextWith.string = @“”“
tempLayerForTextWith.wrapped = YES;

最佳答案

它是iOS中的错误。它已被记录,Apple接受了。您可以添加新的换行符以引入新的行,并在第二行中正确显示变音符号,也可以在CALAyer中使用drawLayer或其他选项来绘制自己。

09-06 01:04