【问题标题】:assigning english and hebrew text to same uilabel将英语和希伯来语文本分配给相同的 uilabel
【发布时间】:2025-11-29 01:55:01
【问题描述】:

我正在维护一个现有的 iOS 项目。我必须用一半英文和一半希伯来文更新 uilabel 的文本。

NSString *tempStr=[[LanguageManager sharedManager]languageString:@"Helpo Rank"];
self.rankLabel.text=@"";
NSLog(@"Helpo Rank assigned from .txt ---->%@",tempStr);
self.rankLabel.text=[NSString stringWithFormat:@"%@:%@",tempStr,[self.professionalDetailDict objectForKey:@"ranking"]];

但是输出变得很乱。output

【问题讨论】:

  • 必须在同一行吗?问题是因为标签的高度吗?
  • ui 标签自动设置为希伯来语,因为您的第一个字符是希伯来语。然后它看到里面有英文,它正确地反转了 LTR 中的文本。您的问题是数字和标点符号也被认为是英语而不是希伯来语。我想有一个混乱的解决方法。我找到它对你有好处吗?
  • @Yitschak 感谢您的帮助....我会努力解决的。
  • 你能解释一下languageString函数还是在这里添加它的代码。

标签: ios objective-c uilabel right-to-left hebrew


【解决方案1】:

一种选择是使用 3 个 ui 标签:

第一个是本地化字符串 第二个是分隔符 第三是数字排名

这样,当布局从 LTR 更改为 RTL 时,标签将在视觉上自动翻转,反之亦然..

如果您愿意,还有另一种解决方法

【讨论】: