Ios 如何通过使用自动布局显示和隐藏组件来调整UITableViewCell高度

Ios 如何通过使用自动布局显示和隐藏组件来调整UITableViewCell高度,ios,objective-c,uitableview,tableviewcell,Ios,Objective C,Uitableview,Tableviewcell,我的手机里有4个部件 UIView UITextView UIImageView UIImageView顶部的另一个UIView UIView UIView 这些内容可以根据来自服务器的数据进行更改(有时需要隐藏第三个图像视图,有时需要隐藏第五个UIView)。我正在使用自动布局,使用自动布局时,更改单元格高度的方法是什么?执行以下步骤: 隐藏任何组件时,请将该组件的框架高度设置为0,然后重新加载tableview。如果给定任何元件的恒定高度,则取“高度约束的出口”并使其为零,然后在取消隐藏时再

我的手机里有4个部件

  • UIView
  • UITextView
  • UIImageView
  • UIImageView顶部的另一个UIView
  • UIView
  • UIView
  • 这些内容可以根据来自服务器的数据进行更改(有时需要隐藏第三个图像视图,有时需要隐藏第五个UIView)。我正在使用自动布局,使用自动布局时,更改单元格高度的方法是什么?

    执行以下步骤:

  • 隐藏任何组件时,请将该组件的框架高度设置为0,然后重新加载tableview。如果给定任何元件的恒定高度,则取“高度约束的出口”并使其为零,然后在取消隐藏时再次指定其恒定高度

  • 取消隐藏时,请给他指定帧高度并重新加载tableView

  • heightForRow
    必须返回
    UITableViewAutomaticDimension

  • 因为您已经从故事板中获取了组件,所以编译器可以理解单元的高度并相应地工作


    如果您仍然面临这个问题,您可以询问。

    您可以使用UIStackView轻松实现这一点。堆栈视图是一个功能强大的工具,可以快速轻松地设计用户界面。它们的属性允许高度控制其排列视图的布局方式

    this two methods are use for dynamic cell height
    
    func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
    {
        return UITableViewAutomaticDimension
    }
    func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    
        return UITableViewAutomaticDimension
    }
    
    这里是教程的链接-


    如果从stackview中隐藏视图,它将很方便地从布局中消失,但它仍然是堆栈视图的子视图。所以,如果你以后想把它带回来,你不必做任何特别的事情。通过使用自调整大小的单元格,单元格将根据堆栈视图高度自动展开或折叠。

    我将此张贴给其他人,以解决我的问题


    不要应用任何会更改
    布局子视图中单元格高度的更改,如隐藏视图或更改任何视图的高度。

    检查此项:需要按照本例中给出的设置约束,并在ViewDiLoad中添加两行代码。我非常喜欢这种方法。