Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 动态表格视图单元格高度_Ios_Swift_Uitableview_Tableviewcell - Fatal编程技术网

Ios 动态表格视图单元格高度

Ios 动态表格视图单元格高度,ios,swift,uitableview,tableviewcell,Ios,Swift,Uitableview,Tableviewcell,我有一个tableViewCell,里面有一个标签,可以有多行高。我已将标签的行属性设置为0。但是,当我使标签的文本具有多行时,文本会被截断。下面是我如何设置故事板的: 有人知道我是如何使表格单元格的高度刚好足以容纳其中的标签的吗?您缺少了从标签到表格视图单元格的底部约束(据我所知)。为了让autolayout知道单元的高度必须有多大,您需要提供这些约束 此外,不要忘记向表视图提供estimatedRowHeight。如果未给出该值,自动调整单元格大小将不起作用。您缺少从标签到表格视图单元格的

我有一个tableViewCell,里面有一个标签,可以有多行高。我已将标签的
属性设置为0。但是,当我使标签的文本具有多行时,文本会被截断。下面是我如何设置故事板的:


有人知道我是如何使表格单元格的高度刚好足以容纳其中的标签的吗?

您缺少了从标签到表格视图单元格的底部约束(据我所知)。为了让autolayout知道单元的高度必须有多大,您需要提供这些约束


此外,不要忘记向表视图提供
estimatedRowHeight
。如果未给出该值,自动调整单元格大小将不起作用。

您缺少从标签到表格视图单元格的底部约束(据我所知)。为了让autolayout知道单元的高度必须有多大,您需要提供这些约束


此外,不要忘记向表视图提供
estimatedRowHeight
。如果未给出该值,自动调整单元格大小将不起作用。

设置动态单元格高度程序

  • 从顶部和底部固定标签。请参考下面的屏幕截图
  • 从xcode的属性检查器将标签的行号设置为0,也可以从代码中完成。请参考下面的屏幕截图
  • 实现下面提到的表视图的委托

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
    }
    
    func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
    return 50 // also UITableViewAutomaticDimension can be used
    }
    

  • 设置动态单元格高度程序

  • 从顶部和底部固定标签。请参考下面的屏幕截图
  • 从xcode的属性检查器将标签的行号设置为0,也可以从代码中完成。请参考下面的屏幕截图
  • 实现下面提到的表视图的委托

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
    }
    
    func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
    return 50 // also UITableViewAutomaticDimension can be used
    }
    

  • 将约束高度设置为大于等于,并对tableview行高使用UITableViewAutomaticDimension设置
    lineBreakMode
    ?您需要使用约束完全指定单元格的高度。例如:如果标签基本上定义了单元格的高度,则应将标签的顶部固定到内容视图的顶部,将标签的底部固定到内容视图的底部。从此处获取参考:将约束高度设置为大于等于,并对tableview行高使用UITableViewAutomaticDimension设置了吗
    lineBreakMode
    ?需要使用约束完全指定单元格的高度。例如:如果标签基本上定义了单元格的高度,则应将标签的顶部固定到内容视图的顶部,将标签的底部固定到内容视图的底部。从这里获取参考: