• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 对齐的阿拉伯文或波斯文文本或从右到左的任何语言方向 - iOS

[复制链接]
菜鸟教程小白 发表于 2022-12-12 12:48:32 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

如何对齐阿拉伯语或波斯语文本或任何语言方向从右到左?



Best Answer-推荐答案


应用程序中的波斯语或阿拉伯语文本无法使用:

NSTextAlignmentJustifie

我找不到任何明确的解决方案;所以我创建了这个方法,也许其他开发者需要这个:

- (NSMutableAttributedString *)MakeJustified_TextNSString *)text FontUIFont *)font{

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setBaseWritingDirection:NSWritingDirectionRightToLeft];
[paragraphStyle setAlignment:NSTextAlignmentJustified];
[paragraphStyle setLineSpacing:7];

NSMutableAttributedString* attrStr = [[NSMutableAttributedString alloc] initWithString: text];
[attrStr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, attrStr.length)];

NSRange range = (NSRange){0,[attrStr length]};
[attrStr enumerateAttribute:NSFontAttributeName inRange:range options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired usingBlock:^(id value, NSRange range, BOOL *stop) {
    UIFont *replacementFont = font;
    [attrStr addAttribute:NSFontAttributeName value:replacementFont range:range];
}];
return attrStr;}

现在您可以在 UITextView 或 UILabel 中非常简单地使用您拥有的任何字体:

    UITextView *textview = [[UITextView alloc]init];
[textview setAttributedText:[self MakeJustified_Text:mytext Font:[UIFont fontWithName"Font_Name" size:15]]];

希望对你有帮助。

关于ios - 对齐的阿拉伯文或波斯文文本或从右到左的任何语言方向 - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41986919/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap