Swift /如何使用动态高度的UITextView INSIDE UITableViewCell具有动态高度

我使用以下代码让UITableViewCell具有动态高度:

tableView.estimatedRowHeight = 155 tableView.rowHeight = UITableViewAutomaticDimension 

这段代码让UITextView根据内容改变它的高度。

 extension NewUserTweetTableVC: UITextViewDelegate { func textViewDidChange(textView: UITextView) { let fixedWidth = textView.frame.size.width textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max)) let newSize = textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max)) var newFrame = textView.frame newFrame.size = CGSize(width: max(newSize.width, fixedWidth), height: newSize.height) textView.frame = newFrame } } 

一旦我在运行时更改了UITextView的文本,UITextView的高度就会改变,但UITableViewCell的高度却没有。 我怎么能改变呢? 非常感谢帮助。

在此处输入图像描述 在此处输入图像描述

以编程方式获取textview的高度…

 let textView = UITextView()//your Text view let sizeThatShouldFitTheContent = textView.sizeThatFits(textView.frame.size) let height = sizeThatShouldFitTheContent.height 

试试这个演示……

在UITableView中自定义UITextView

http://candycode.io/self-sizing-uitextview-in-a-uitableview-using-auto-layout-like-reminders-app/

如果您使用的是UITableViewAutomaticDimension则必须从上到下设置序列约束。 没有autolayout或适当的约束UITableViewAutomaticDimension将无法正常工作。 所以你可以管理这样的东西: set top,bottom,leading,trailing and fixed height constraints到textview 。 然后采取fixed height constraint出口并增加它的constant而不是改变或设置textview的框架,我认为每个都可以工作!

我正在改善Lion的答案。

如果您使用的是UITableViewAutomaticDimension,则必须从上到下设置序列约束。 没有autolayout或适当的约束UITableViewAutomaticDimension将无法正常工作。 所以你可以管理这样的东西:set top,bottom,leading,trailing和fixed height constraints到textview。 禁用UITextview的滚动function,您就完成了。 您不需要固定高度约束。