Word Wrap Line Break 仅在特定文本字符串的 UILabel 中不起作用
Word Wrap Line Break not working in UILabel only for specific text Strings
我有一个 UITableViewController
,带有一个带有三个标签和一个按钮的自定义原型单元格。中间标签(称为 descriptionLabel
)是一个多行标签,在属性检查器中设置了 Word Wrap 作为 "Line Breaks" 选项和 0 行。
如果我设置 descriptionLabel.text
属性 分配文字 String
,Word Wrap 选项工作正常,如下图所示:
问题是 descriptionLabel
的文本来自一个对象。此对象是从网络服务下载并存储在本地,它还用于填充单元格的所有其他标签。
当我将对象-属性 字符串分配给 descriptionLabel
的文本 (cell.descriptionLabel.text = monthlyPaymentType.detail
) 时,但是,自动换行不起作用,如下图所示:
Cell with Word Wrap NOT working
在这种情况下,"cobrado" 是一个单词,但它是字符换行而不是单词换行。
这很奇怪,因为如果我复制 print(monthlyPaymentType.detail)
的结果,将其粘贴为文字字符串并将其分配给 cell.descriptionLabel.text
,自动换行选项也 不会 工作。
但是如果我手动键入一个与 print(monthlyPaymentType.detail)
内容完全相同的文字字符串并将其分配给 cell.descriptionLabel.text
,Word Wrap 选项 会 起作用.
我在配置标签时做错了什么吗?我的对象中存储的字符串有问题吗?
问题是来自服务器并存储在对象中的字符串中的空格是 Unicode Non-Breaking Spaces (U+00A0)。当这些字符串被分配给 UILabel
text
属性 时,不间断空格不被视为单词分隔符。
为了解决这个问题,我使用 String
的方法 stringByReplacingOccurrencesOfString("\u{00A0}", withString: "\u{0020}")
.
将出现的 U+00A0 字符替换为常见的 Unicode 空格 (U+0020)
我有一个 UITableViewController
,带有一个带有三个标签和一个按钮的自定义原型单元格。中间标签(称为 descriptionLabel
)是一个多行标签,在属性检查器中设置了 Word Wrap 作为 "Line Breaks" 选项和 0 行。
如果我设置 descriptionLabel.text
属性 分配文字 String
,Word Wrap 选项工作正常,如下图所示:
问题是 descriptionLabel
的文本来自一个对象。此对象是从网络服务下载并存储在本地,它还用于填充单元格的所有其他标签。
当我将对象-属性 字符串分配给 descriptionLabel
的文本 (cell.descriptionLabel.text = monthlyPaymentType.detail
) 时,但是,自动换行不起作用,如下图所示:
Cell with Word Wrap NOT working
在这种情况下,"cobrado" 是一个单词,但它是字符换行而不是单词换行。
这很奇怪,因为如果我复制 print(monthlyPaymentType.detail)
的结果,将其粘贴为文字字符串并将其分配给 cell.descriptionLabel.text
,自动换行选项也 不会 工作。
但是如果我手动键入一个与 print(monthlyPaymentType.detail)
内容完全相同的文字字符串并将其分配给 cell.descriptionLabel.text
,Word Wrap 选项 会 起作用.
我在配置标签时做错了什么吗?我的对象中存储的字符串有问题吗?
问题是来自服务器并存储在对象中的字符串中的空格是 Unicode Non-Breaking Spaces (U+00A0)。当这些字符串被分配给 UILabel
text
属性 时,不间断空格不被视为单词分隔符。
为了解决这个问题,我使用 String
的方法 stringByReplacingOccurrencesOfString("\u{00A0}", withString: "\u{0020}")
.