根据 textView 调整单元格大小不起作用?
Posted
技术标签:
【中文标题】根据 textView 调整单元格大小不起作用?【英文标题】:Resizing cells according to textView not working? 【发布时间】:2015-11-14 00:16:48 【问题描述】:我在将单元格大小调整为 textView 的内容时遇到了问题。 textView 的内容会根据用户在应用上键入和发布的内容而有所不同,因此它可能是很长的文本,也可能是很短的文本。
截至目前,它在应用上的显示如下:
但是,我一直在 viewDidLoad() 中使用这部分代码,这在我的应用程序的其他视图中运行良好:
override func viewDidLoad()
super.viewDidLoad()
ProfiletableView.delegate = self
ProfiletableView.dataSource = self
self.ProfiletableView.rowHeight = UITableViewAutomaticDimension
self.ProfiletableView.estimatedRowHeight = 40.0
注意:上面的代码一直在应用中的其他 tableViews 上工作,但在显示您的帖子的个人资料部分,它显示它们如下:
与其他使用可调整大小代码的类相比,我一直在代码中来回搜索是否有任何问题,但我似乎找不到任何东西。
有什么想法吗?
编辑:添加了约束照片
编辑 2: 添加了另一张照片
编辑 3: 另一张照片
【问题讨论】:
检查单元格上的约束以确保从上到下都有约束 你是如何为 UITableViewCell 设置约束的?您需要确保约束不会限制单元格的高度。这里的挑战是 UITextView 不会自动增大大小。如果您暂时尝试用 UILabel(行设置为 0)替换 UITextView 是否可以解决问题? @Paulw11 是的,有限制 @JoGoFo 这显示了文本,但它被截断了,就像它像在一个句子中一样写下来,然后离开了屏幕,所以我不知道它是否正在调整大小 @thefredelement 是的,它起作用了。谢谢! 【参考方案1】:通过禁用 textview 滚动来检查。
【讨论】:
一个非常合乎逻辑但非常隐蔽的解决方案。谢谢!【参考方案2】:我不肯定这会解决您的问题。但是 Ray Wenderlich 网站上有一篇关于表格视图单元格内动态大小的好文章。
http://www.raywenderlich.com/73602/dynamic-table-view-cell-height-auto-layout
【讨论】:
谢谢。我会检查一下。 @JoGoFo 和 thefredelement 帮助我修复了它。这是 textView 的约束和设置问题。【参考方案3】:我认为 Uilabel 可以为您做到这一点...... 只需设置编号即可。在具有适当约束的换行模式中将行数归零和文字扭曲将自动增加或减少 UITable 视图单元格和标签的高度。
【讨论】:
【参考方案4】:试试这个代码 设置 textview.isScrollEnabled = false
override func viewDidLoad()
super.viewDidLoad()
ProfiletableView.rowHeight = UITableViewAutomaticDimension
ProfiletableView.estimatedRowHeight = 40.0
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "abcCell", for: indexPath) as! AbcCell
cell.textView.delegate = self
cell.textView.isScrollEnabled = false
return cell
也在委托下方设置:
func textViewDidChange(_ textView: UITextView)
ProfiletableView.beginUpdates()
ProfiletableView.endUpdates()
【讨论】:
以上是关于根据 textView 调整单元格大小不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
根据内容自动调整 TableViewCell 的大小不起作用
使用固定大小的子视图和自动布局调整 UIView 的大小不起作用