Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.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 如何将UITableViewCell高度调整为UITextView的内容,即';里面有什么?_Ios_Swift_Uitableview_Uitextview - Fatal编程技术网

Ios 如何将UITableViewCell高度调整为UITextView的内容,即';里面有什么?

Ios 如何将UITableViewCell高度调整为UITextView的内容,即';里面有什么?,ios,swift,uitableview,uitextview,Ios,Swift,Uitableview,Uitextview,在我的故事板中,我有一个带有动态生成的UITableViewCell的UITableView。每个单元格包含2个标签和1个文本视图: 我有一个代码,可以根据文本量调整文本字段的大小: let fixedWidth = cell.myComment.frame.size.width cell.myComment.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max)) let newSize = cell.myComment.siz

在我的故事板中,我有一个带有动态生成的
UITableViewCell
UITableView。每个单元格包含2个标签和1个文本视图:

我有一个代码,可以根据文本量调整文本字段的大小:

let fixedWidth = cell.myComment.frame.size.width
cell.myComment.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max))
let newSize = cell.myComment.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max))
var newFrame = cell.myComment.frame
newFrame.size = CGSize(width: max(newSize.width, fixedWidth), height: newSize.height)
cell.myComment.frame = newFrame;
当我将textView的背景色设置为红色时,我看到:

细胞本身-我在这里设置大小:

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
     if indexPath.row == 0 {
         return 100//this is my static cell
     }
     else {
         return 117; //for now it's hardcoded - how can I set this value dynamically based on content?
     }
}

因此,正如我在上面的评论中所写的——如何根据文本视图中的文本量动态设置单元格的高度?

获取自调整大小表格单元格(我建议基于自动布局)的关键如下所示:

  • 将子视图添加到
    uitableview单元格的
    contentView
  • 在子视图和
    contentView
    之间提供约束,以便子视图到达表格单元格的所有边缘。在您的情况下,这可能意味着将
    UITextView
    前导边
    尾随边
    顶边
    底边
    内容视图
    的对应边对齐
  • 将行高设置为
    UITableViewAutomaticDimension
    ,而不是硬编码的
    CGFloat
  • 在控制器的某个位置,使用
    tableView.estimatedRowHeight=x
    提供高度估计值(硬编码常量可以,这是为了性能)

获取自动调整表格单元格大小(我建议基于自动布局)的关键如下:

  • 将子视图添加到
    uitableview单元格的
    contentView
  • 在子视图和
    contentView
    之间提供约束,以便子视图到达表格单元格的所有边缘。在您的情况下,这可能意味着将
    UITextView
    前导边
    尾随边
    顶边
    底边
    内容视图
    的对应边对齐
  • 将行高设置为
    UITableViewAutomaticDimension
    ,而不是硬编码的
    CGFloat
  • 在控制器的某个位置,使用
    tableView.estimatedRowHeight=x
    提供高度估计值(硬编码常量可以,这是为了性能)

Hm,通过这样做,我还需要部分代码来调整文本视图的高度吗?不需要。只要约束边,UITextView就足够智能,可以将文本包装到第二行。它和UILabel一样,有一个基于文本的固有内容大小。嗯,这样做,我还需要部分代码来调整文本视图的高度吗?不需要。只要约束边,UITextView就足够智能,可以将文本包装到第二行。它与UILabel一样,具有基于文本的固有内容大小。