如何在 Swift 中更改 UITableView 单元格的高度?

Peg*_*ggy 4 uitableview ios swift

我正在尝试对如下图所示的应用程序显示评论。我正在使用 Xcode 9.4.1。

应用视图

我使用以下代码隐藏标签:

if commentManager == nil {
    cell.managerReplyLabel.isHidden = true
    cell.ratingManagerLabel.isHidden = true
}
Run Code Online (Sandbox Code Playgroud)

但它看起来仍然有一个空间,我隐藏了两个标签。

我尝试使用cell.ratingManagerLabel.font.withSize(0) cell.ratingManagerLabel.frame.size.height = 0更改标签高度,但它不起作用。

如何减少空间?

更新:

我使用故事板来设置屏幕和自动布局。

自动布局

import UIKit
import Cosmos

class RatingTableViewCell: UITableViewCell {

    @IBOutlet weak var userNameLabel: UILabel!
    @IBOutlet weak var ratingStar: CosmosView!
    @IBOutlet weak var ratingUserLabel: UILabel!
    @IBOutlet weak var ratingManagerLabel: UILabel!

    @IBOutlet weak var managerReplyLabel: UILabel!

}
Run Code Online (Sandbox Code Playgroud)

Dan*_*ina 8

在 UITableView 类中使用委托方法。

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
{
    return 200 //or whatever you need
}
Run Code Online (Sandbox Code Playgroud)

  • 您需要使用“switch”或“if ...else”语句来定位要更改高度的行/单元格。 (2认同)

Sul*_*han 5

有两个简单的解决方案:

  1. 将两个标签上的文本设置为nil(或"")。然后标签将具有零高度。

  2. 将标签包装成UIStackView垂直布局方向。然后设置.isHidden = true也将有效地删除标签。

另请注意,您可能需要致电:

tableView.beginUpdates()
tableView.endUpdates()
Run Code Online (Sandbox Code Playgroud)

强制表格更新其单元格的高度。