2012-04-30 54 views
1

我想顯示帶有西班牙字母Ñ的字詞,但該字母只出現在沒有變音符號的情況下才顯示爲大寫字母N.但是,小寫字母正在正確顯示。任何想法如何在iOS中使用默認字體在CATextLayer中顯示字母?問題在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]; 

我對德語字母Ä,Ö,Ü有同樣的問題。如果您知道,請諮詢如何解決。

Brad的問題後更新。

我發現只有第一行有這個問題。如果我將文本設置爲長文本,以便使用下面的代碼進行包裝,那麼我發現第二行向前的變音符號被正確繪製。 CATextLayer中有沒有一種方法可以爲文本指定基線,因爲它似乎是由iOS設置的基線,使得文本的頭部被切斷。

tempLayerForTextWith.string = @「ÑÑÑÄÖÜÑÑÑÄÖÜÑÑÑÑÖÑÑÑÑÄNOÜÑÑÑÑÖÜ」; tempLayerForTextWith.wrapped = YES;

+0

你確定你讓圖層足夠高嗎?它能否斬斷這些高大的人物的頂部? –

+0

是的,框架足夠大,寬度爲100,高度爲100.您可以通過將此代碼添加到任何虛擬項目來自行驗證。 – user859375

+0

嗨布拉德,我發現只有第一行是有這個問題。 – user859375

回答

1

它是iOS中的一個錯誤。它被記錄下來,並被Apple接受。你可以添加一個新的行字符來引入一個新行,它會在第二行中正確顯示變音符號,或者你可以在CALAyer中使用drawLayer或其他選項來繪製自己。

+0

你有沒有參考這個錯誤? – NilsH

+0

這個錯誤在iOS 6.0以後不存在,它在iOS 5.1中。此後,蘋果公司關閉了這個bug,但沒有修復它,因爲它並沒有出現在最新版本中。錯誤ID是11381872 – user859375

相關問題