2016-06-28 32 views
1

我有一個帶有三個標籤和一個按鈕的自定義原型單元的UITableViewController。中間標籤(稱爲descriptionLabel)是Word Wrap作爲「換行」選項的多行標籤,在「屬性」檢查器中設置了0行。文字自動換行不適用於特定文本的UILabel字符串

如果我設置descriptionLabel.text屬性賦予文本String,自動換行選項正常工作,如圖所示如下圖:

Cell with Word Wrap working

的問題是,descriptionLabel的文本來自一個目的。該對象從Web服務下載並存儲在本地,也用於填充單元的所有其他標籤。

當我分配對象的屬性的字符串的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,自動換行選項確實工作。

配置標籤時我做錯了什麼嗎?存儲在我的對象中的字符串有問題嗎?

回答

1

問題是來自服務器並存儲在對象中的字符串中的空格是Unicode Non-Breaking Spaces(U + 00A0)。當這些字符串被分配給UILabeltext屬性時,不打破空格不被視爲字詞分隔符。

爲了解決此問題,我使用String的方法stringByReplacingOccurrencesOfString("\u{00A0}", withString: "\u{0020}")替換了發生的U + 00A0字符與普通Unicode空格(U + 0020)。