【问题标题】:Live resizing of UITableViewCell without using reloadData?在不使用 reloadData 的情况下实时调整 UITableViewCell 的大小?
【发布时间】:2012-08-29 07:54:12
【问题描述】:

首先,如果答案已经出现,请原谅我(老实说,我已经工作和搜索了大约两周)。

现在的情况:

我有一个UITextView 作为UITableViewUITableViewCell 的子视图。 UITextView 是第一响应者(当用户输入时)。

我已经设置了它(通过委托协议方法),以便在每个键入的字符之后,重新计算单元格的rowHeight(正确并在 tableViews 的 rowHeight 委托协议中)。到目前为止一切都很好。

然后,我希望重新加载(或刷新,无论术语是什么)该单元格而不将其子视图 UITextView 作为第一响应者。

围绕问题的不令人满意的解决方案:

我可以使用[tableView reloadData] 然后[textView becomeFirstResponder]模拟这个(这样用户甚至不会注意到 textView 已重新加载)并且 rowHeight 是完美的,但这有给我带来了很多问题(尤其是确保每次用户键入字符 时光标不会跳到末尾,并且由于 textView 辞职,自动更正强制执行其建议)。 p>

有没有办法重绘或调整UITableViewCell 的大小(以动态更改其rowHeight)而不会导致其任何子视图辞去第一响应者的职务?

【问题讨论】:

  • this answer 应该可以帮助您。它谈论动画,但我很确定它可以满足您的需求。
  • 谢谢@KDaker,但实际上我之前看到过这个并且它不起作用(出于某种奇怪的原因)。看来值得再试一次。
  • 其他答案或想法将不胜感激!
  • 有人吗?我至少可以简单地在一个单元格内有一个 textView 并让单元格在 textView 中输入的每个 keyStroke 上调整高度吗?这就是我真正想要的。
  • 嘿,希望您找到解决问题的方法。我遇到了this,并认为它可能会对您有所帮助。查看 TTTextEditor。它是一个文本编辑器,可在您键入时扩展大小。我不确定这是否会对您的细胞问题有所帮助,但值得一看。幸运。

标签: iphone uitableview uitextview resignfirstresponder


【解决方案1】:

使用 tableView 的 [tableView beginUpdates][tableView endUpdates] 将解决这个问题。请参阅this answer 了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 2015-08-11
    相关资源
    最近更新 更多