更改单元格高度后,单元格文本标签不居中

问题描述 投票:0回答:1

我有一个value1类型的单元格,因为我的一些详细标签文本太长而且被截断,所以我更新单元格高度以适应文本。

但是在更新高度后,我的文本标签位于左上角,而不是垂直位于中间。像这样:

==================         =====================
label                =>    label
==================         

                           =====================

有人知道怎么修这个东西吗?

编辑

更改高度代码:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    var rowHeight=44.0
    var numOfLines = 1;
    if let cell = tableView.cellForRow(at: indexPath),let label = cell.detailTextLabel, let size = label.text?.size(withAttributes: [NSAttributedString.Key.font:label.font]){
        let labelWidth = label.frame.width
        label.textAlignment = .left
        while(Int(size.width) > Int(labelWidth) * numOfLines){
            rowHeight+=20;
            numOfLines+=1
        }
        //becuase it was rounded down as int
        numOfLines+=1
        print("number of lines \(numOfLines)")
        label.numberOfLines = numOfLines
        label.lineBreakMode = .byCharWrapping
    }
    return CGFloat(rowHeight)
}
swift uitableview uilabel
1个回答
0
投票

@Anna,我相信您的问题可以通过UITableViewAutomaticDimension解决。只需确保标签的numberOfLines设置为0,heightForRowAtIndexPath委托方法应返回UITableViewAutomaticDimension,并且不要忘记为标签添加右,左,上,下约束。

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
     return UITableViewAutomaticDimension
 } 

请查找链接以获取更多参考: - UITableViewAutomaticDimension

© www.soinside.com 2019 - 2024. All rights reserved.