【问题标题】:how to change height cell in uitableview without reload data如何在不重新加载数据的情况下更改uitableview中的高度单元格
【发布时间】:2011-11-01 05:42:44
【问题描述】:

我使用 UITableView,我想改变不同单元格的高度。但我不想为此使用重新加载数据,因为我的表格视图包含我现在编辑的 UITextView 并且 UIKeyBoard 已启动。

【问题讨论】:

    标签: uitableview uitextfield reloaddata


    【解决方案1】:

    您正在寻找 UITableView 上的 reloadRowsAtIndexPaths: 方法。它将触发重新计算特定单元格的高度(以及随后的重绘)。它甚至可以为调整设置动画,以便您可以在用户滚动时实时更新,这样表格视图就不会在重新计算高度时“晃动”或“步履蹒跚”。我刚刚成功地实现了它来做你描述的事情。

    来源: Update UITableViewCell without reload

    【讨论】:

    • 如果行高发生变化,重新加载表格可能会关闭键盘。
    • 这个问题专门要求一种在不关闭键盘的情况下做到这一点的方法。 reloadRowsAtIndexPaths 关闭键盘
    • [self.tableView beginUpdates];[self.tableView endUpdates]; 不会关闭键盘。如果您在单元格中嵌入了文本视图,则此方法有效。
    【解决方案2】:

    您可以致电beginUpdates && endUpdates,这将导致重新计算表格单元格的高度, 无需重新加载整个单元格

               UIView.setAnimationsEnabled(false)
    
                self.tableView.beginUpdates()
                self.tableView.endUpdates()
                // Re-enable animations
                UIView.setAnimationsEnabled(true)
    

    【讨论】:

      猜你喜欢
      • 2016-08-26
      • 2018-07-31
      • 1970-01-01
      • 1970-01-01
      • 2011-07-06
      • 2017-04-27
      • 2021-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多