【问题标题】:How to make UITableViewDataSource ask for cell height before each cellForRowAtIndexPath call?如何让 UITableViewDataSource 在每次调用 cellForRowAtIndexPath 之前询问单元格高度?
【发布时间】:2013-05-21 13:42:35
【问题描述】:

我有很多包含几个可调整大小的 UITextView 的单元格。我想让 dataSource 在每个 cellForRowAtIndexPath 调用之前调用 heightForRowAtIndexPath ,而不仅仅是在表重新加载数据时。在那种情况下,我可以在重新加载时返回假高度,并且我不需要在更新时一直重绘所有文本视图(当我需要重绘时性能非常低,比如说 1000 个文本视图),但是当这些文本视图是确实需要。

【问题讨论】:

    标签: ios xcode uitableview uitextview


    【解决方案1】:

    使用函数:

    -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    

    在你的控制器中

    【讨论】:

      【解决方案2】:

      是的 用UITableViewDelegate 实现tableView:heightForRowAtIndexPath: 喜欢

      -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath
      {
         if (indexPath.row == 1) {
           return 90;
         }
         else{
           return 45;
          }
      }
      

      【讨论】:

      • 如果我的 textViews 不能调整大小,那将是一个不错的选择,但在我的情况下,如果我在一个单元格中更改 textView 宽度,我需要对所有单元格 textviews 执行此操作,因为它应该像列。所以在这个方法中我想返回假的高度值(然后我不需要计算不可见单元格的单元格高度)并在调用 cellForRowAtIndexPath 之前询问 dataSource 的高度,然后返回真实的计数值。
      • 据我了解,您可以制作两个int variables,一个用于Max Height,第二个用于Min Height,并检查根据单元格索引或数组索引重新运行它,就像我描述的那样?跨度>
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-19
      • 1970-01-01
      • 2016-11-26
      • 1970-01-01
      • 1970-01-01
      • 2019-05-23
      相关资源
      最近更新 更多