如何在 iOS 的 UILabel/UITextView 中处理多种屏幕尺寸的中文自动换行?

Posted

技术标签:

【中文标题】如何在 iOS 的 UILabel/UITextView 中处理多种屏幕尺寸的中文自动换行?【英文标题】:How to handle word wrap in iOS' UILabel/UITextView for the Chinese language for multiple screen sizes? 【发布时间】:2016-10-26 21:08:06 【问题描述】:

我有一个应用被本地化为简体Chinese。我注意到有时UILabelsUITextViews 会换行字符而不是整个单词。

通过Chinese 语言手动指出每个设备大小和方向的每个本地化字符串的换行符似乎有点疯狂。

有没有办法使用NSLinguisticTagger 提取单词并告诉UILabel 根据标记的内容进行换行?

【问题讨论】:

【参考方案1】:
TextView.lineBreakMode = NSLineBreakMode.ByWordWrapping

TextView.sizeToFit()

标签也是如此。对我来说不是中文的,但你可以试试

【讨论】:

中文好像不行。刚刚有人审查了我们的应用,他们说它是按字符包装的。 用文字换行实际上只是在空格字符上换行。中文或日文中没有空格字符。用 words 包裹中文或日文将需要操作系统对您的中文文本具有语义和/或句法知识。它只是没有那个,所以它不能这样做。将此与大多数其他语言(例如韩语)进行比较:单词很容易识别,因为它们由空格字符分隔。

以上是关于如何在 iOS 的 UILabel/UITextView 中处理多种屏幕尺寸的中文自动换行?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 4 上运行 iOS 5/ARC 项目

iOS - 如何在 iOS 应用上跟踪用户对推送通知的选择?

如何在MvvmCross中呈现iOS模态视图

如何在 textField iOS 7 中创建 innerShadow?

如何在 Swift 中同时为 iOS7 和 iOS8 调用 registerForRemoteNotifications?

如何在 iOS 应用中管理帐户?