2015-08-19 110 views
1

在我的UITableViewCellUITableViewCellStyleSubtitle我想填充完整的最大寬度detailTextLabel;一個短文本在左邊(左對齊)和另一個在最右邊的短文本(右對齊)。這兩篇文章將在他們之間留下足夠的空間。我發現this但這似乎並不奏效;它只是在左側和右側部分之間添加一個固定的空間。左對齊和右對齊文本在UITableViewCell的detailTextLabel

如果detailTextLabel的固定寬度擴展了整個可用的單元格空間,則不會那麼困難:例如,可以計算兩個字符串的寬度並使用NSKernAttributeName填充剩餘空間。但不幸的是,detailTextLabel針對當前內容進行了動態調整。

有沒有人想出一個優雅的解決方案來做到這一點? (除了小步驟使文字變得更長和更長,直到它達到detailTextLabel的全部潛在寬度並由於...而回退一點。)

+2

你不能繼承你的細胞並將detailTextLabel分成兩部分嗎?然後,您可以指定所需的任何寬度以及它們之間的任何所需空間。你也可以將它們嵌入到UIView中,使它們的組合寬度始終相同 –

+0

@AndriyGordiychuk我想到了子類化,但是因爲我想要有標準的iOS外觀,我必須手動複製包括字體和顏色的完整佈局。其他方法是添加一個'UILabel'子視圖到單元格中,但是我又不得不復制。我希望有一個更簡單的方法。 –

回答

2

這對我有效。試試這個:

cell.detailTextLabel!.lineBreakMode = NSLineBreakMode.ByWordWrapping; 
cell.detailTextLabel!.numberOfLines = 0; 

如果你想在tableView中設置左視圖和右視圖。

選擇您的tableView並轉到屬性檢查器並設置原型單元爲1,顯示在下面的截圖:

enter image description here

選擇您的tableView細胞去屬性檢查器,如圖所示做的設置在下面的屏幕截圖:

enter image description here

選擇合適的細節後,將細胞的tableview將包括如下截圖:

enter image description here

文本設置「cell.textLabel!的.text」是左視圖(標題) ,並在設置文本「cell.detailTextLabel!的.text」是右視圖(詳細信息)

希望這可能會有所幫助。

+0

但你是如何設置左右文本的? –

+0

我已經更新了我在tableView中左右視圖的答案。 – Karlos

+0

感謝您的努力,但不幸的是不工作。原因有三:1.我已經使用'textLabel' 2.我沒有使用storyboard和XIB 3.正如我所說的,我不想使用自定義單元,而是使用「UITableViewCellStyleSubtitle」。 –