我有以下4 Labels
在自定義TableViewCell
目前看起來是這樣:成長TableViewCell高度與包裝標籤
我有這樣的:
第一,第三和第四個標籤的寬度約束固定,最大行數設置爲1.第二個Label
填充標籤1和3之間的水平空間。
我想第二Label
換到一個最大的2條線,並且使得每個標籤的第一行對齊這樣垂直對齊頂端:
我想這樣的:
我已將每個標籤的背景顏色設置爲灰色,以便可以看到約束條件。
我有以下4 Labels
在自定義TableViewCell
目前看起來是這樣:成長TableViewCell高度與包裝標籤
我有這樣的:
第一,第三和第四個標籤的寬度約束固定,最大行數設置爲1.第二個Label
填充標籤1和3之間的水平空間。
我想第二Label
換到一個最大的2條線,並且使得每個標籤的第一行對齊這樣垂直對齊頂端:
我想這樣的:
我已將每個標籤的背景顏色設置爲灰色,以便可以看到約束條件。
您可以使用自行調整大小的單元來實現此目的。爲了使這項工作的兩行添加到您的UITableview
:
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 50
然後在Interface Builder設置在原型細胞以下限制:
取消選擇所有約束「約束的利潤」。
標籤1:
標籤2:
標籤3:
標籤4:
如果像這樣設置約束,當第二個標籤將文本換行到第二行時,單元格高度自動變高。
完美!簡單而直接。謝謝。 –
要頂部對齊UILabels,您可以將所有UILabel的頁邊距約束設置爲常量,或設置頂部對齊約束。要設置頂部對齊約束,請選擇標籤並按住Ctrl並從標籤拖動到另一個。從彈出框中選擇頂部對齊。
需要注意的一點是,對於第二個標籤,請將4個邊距長度設置爲5pt左右,但不要像其他寬度或高度那樣限制其寬度或高度。
選擇第二個標籤後,最多可以在右側實用程序面板中配置2行。
要動態更改單元格的高度有點棘手。首先,您應該知道文本是否足夠長以將標籤拉伸爲2行和標籤的高度。 (See Here)如果文本足夠長以佔用兩行,則該方法將返回比通常大的高度值。在此基礎上的高度變化,請使用以下的UITableViewDelegate動態改變的UITableViewCell的高度:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
希望這有助於。
除非你想潛水深,做大量的計算,已經在SO討論了很多,使用單行標籤之一,以「措施」最大限度地爲第二高度標籤,並讓它限制行數。大寫字母的第三個標籤看起來不錯,大約2.2的倍數應該可以做到。可能還想要將所有標籤設置爲多行以具有相同的插頁。 –