3

iOS 7 以降、アラビア語フォントがサポートされるようになりましたが、使用する場合:

   lbl.font=[UIFont fontWithName:@"Scheherazade" size:33];

テキストが の端に達し、UILabel一部の単語が読めません !!

この問題を解決するには?? ここで私の問題を説明しています。絵

ここに私のコードがあります:

lbl  = [[UILabel alloc]initWithFrame:CGRectMake(20, 50, 280, 320)];
lbl.text = @"شِّرِ ٱلَّذِينَ ءَامَنُوا۟ وَعَمِلُوا۟ ٱلصَّٰلِحَٰتِ أَنَّ لَهُمْ جَنَّٰتٍۢ تَجْرِى مِن تَحْتِهَا ٱلْأَنْهَٰرُ ۖ كُلَّمَا رُزِقُوا۟ مِنْهَا مِن ثَمَرَةٍۢ رِّزْقًۭا ۙ قَالُوا۟ هَٰذَا ٱلَّذِى رُزِقْنَا مِن قَبْلُ ۖ وَأُتُوا۟ بِهِۦ مُتَشَٰبِهًۭا ۖ وَلَهُمْ فِيهَآ أَزْوَٰجٌۭ مُّطَهَّرَةٌۭ ۖ وَهُمْ فِيهَا خَٰلِدُونَ";
lbl.font=[UIFont fontWithName:@"Scheherazade" size:33.0];
lbl.backgroundColor = [UIColor whiteColor];
lbl.lineBreakMode = NSLineBreakByCharWrapping;
[self.view addSubview:lbl];
lbl.numberOfLines = 0;
lbl.textAlignment = NSTextAlignmentCenter;
4

5 に答える 5

0

UILabelをそのスーパービューの幅に設定preferredMaxLayoutWidthしてみてください (オプションで左右のパディングを使用)。

于 2013-10-14T18:35:21.100 に答える
0

iOS 7 でも同じ問題が発生しています。 が常に として扱われるバグがあるNSLineBreakByCharWrapping思いますNSLineBreakByWordWrapping。Appleに提出しました。

于 2013-10-09T20:35:30.663 に答える
0

改行モード「NSLineBreakByWordWrapping」を変更しました。アラビア語のテキストが原因で問題が発生すると思います。

UILabel * lbl = [[UILabel alloc]initWithFrame:CGRectMake(20, 50, 280, 320)];

lbl.text = @"شِّرِ ٱلَّذِينَ ءَامَنُوا۟ وَعَمِلُوا۟ ٱلصَّٰلِحَٰتِ أَنَّ لَهُمْ جَنَّٰتٍۢ تَجْرِى مِن تَحْتِهَا ٱلْأَنْهَٰرُ ۖ كُلَّمَا رُزِقُوا۟ مِنْهَا مِن ثَمَرَةٍۢ رِّزْقًۭا ۙ قَالُوا۟ هَٰذَا ٱلَّذِى رُزِقْنَا مِن قَبْلُ ۖ وَأُتُوا۟ بِهِۦ مُتَشَٰبِهًۭا ۖ وَلَهُمْ فِيهَآ أَزْوَٰجٌۭ مُّطَهَّرَةٌۭ ۖ وَهُمْ فِيهَا خَٰلِدُونَ";
lbl.font=[UIFont fontWithName:@"Scheherazade" size:33.0];
lbl.backgroundColor = [UIColor white];
lbl.lineBreakMode = NSLineBreakByWordWrapping;
[self.view addSubview:lbl];
lbl.numberOfLines = 0;
lbl.textAlignment = NSTextAlignmentCenter;
于 2013-11-13T08:20:14.627 に答える
-2

lbl.font=[UIFont fontWithName:@"Scheherazade" size:33.0];このコードでフォントサイズを調整しようとすると、実際にフォントサイズが変化しなかった問題を見つけてください

lbl.font= [UIFont systemFontOfSize:10];

コードを更新し、完全なテキストを表示できるようになりました

UILabel *lbl  = [[UILabel alloc]initWithFrame:CGRectMake(20, 0, 280, 320)];
lbl.text = @"شِّرِ ٱلَّذِينَ ءَامَنُوا۟ وَعَمِلُوا۟ ٱلصَّٰلِحَٰتِ أَنَّ لَهُمْ جَنَّٰتٍۢ تَجْرِى مِن تَحْتِهَا ٱلْأَنْهَٰرُ ۖ كُلَّمَا رُزِقُوا۟ مِنْهَا مِن ثَمَرَةٍۢ رِّزْقًۭا ۙ قَالُوا۟ هَٰذَا ٱلَّذِى رُزِقْنَا مِن قَبْلُ ۖ وَأُتُوا۟ بِهِۦ مُتَشَٰبِهًۭا ۖ وَلَهُمْ فِيهَآ أَزْوَٰجٌۭ مُّطَهَّرَةٌۭ ۖ وَهُمْ فِيهَا خَٰلِدُونَ";
lbl.font=[UIFont fontWithName:@"Scheherazade" size:33.0];
lbl.backgroundColor = [UIColor whiteColor];
//lbl.lineBreakMode = NSLineBreakByCharWrapping;
[self.view addSubview:lbl];
lbl.numberOfLines = 0;
lbl.textAlignment = NSTextAlignmentCenter;

スクリーンショット

于 2013-09-24T12:56:10.307 に答える