根据UITextView的contentSize调整特定表视图单元格的大小

时间:2015-09-07 17:32:23

标签: ios swift uitableview tableview tableviewcell

我正在尝试调整特定UITableViewCell的大小,具体取决于UITextView的大小 - 我已经尝试了很长一段时间,似乎绝对没有运气。

我所做的是计算UITextView的大小,具体取决于contentSize(变化),然后在CGFloat内返回高度,然后传递行高法并从那里操纵它的高度。

let contentSize = self.myTextView.sizeThatFits(self.myTextView.bounds.size)
var frame = self.myTextView.frame
frame.size.height = contentSize.height
self.myTextView.frame = frame

rowHeight = frame.height

然后我声明了一个名为rowHeight的CGFloat,然后尝试将contentSize.height传递给它,这似乎有效,但它不会改变单元格的大小。

以下是方法:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
    if (indexPath.section == 2 && indexPath.row == 0) {
        return rowHeight
    }
    else {
        return 44.0
    }
}

我在控制台中打印了frame.height.description作为字符串,然后在行高度方法中明确定义它,这很好。这让我相信我的问题是计算并将CGFloat放在rowHeight变量中。

有人可以指导我如何根据CGFloat的大小将UITextView传递给变量,然后将该变量用作特定单元格的行高吗?

1 个答案:

答案 0 :(得分:1)

来自apple's docs

  

func reloadData()

     

调用此方法重新加载用于构造的所有数据   表,包括单元格,节头和页脚,索引数组和   等等。

所以这应该用新的高度重绘你的桌子。