1

我正在尝试显示带有西班牙语字母 Ñ 的单词,但该字母仅出现,没有变音波浪号作为大写 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 = 是;

4

1 回答 1

1

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

于 2012-05-24T21:43:31.357 回答