<tfoot id='lg4Y3'></tfoot>

        <i id='lg4Y3'><tr id='lg4Y3'><dt id='lg4Y3'><q id='lg4Y3'><span id='lg4Y3'><b id='lg4Y3'><form id='lg4Y3'><ins id='lg4Y3'></ins><ul id='lg4Y3'></ul><sub id='lg4Y3'></sub></form><legend id='lg4Y3'></legend><bdo id='lg4Y3'><pre id='lg4Y3'><center id='lg4Y3'></center></pre></bdo></b><th id='lg4Y3'></th></span></q></dt></tr></i><div id='lg4Y3'><tfoot id='lg4Y3'></tfoot><dl id='lg4Y3'><fieldset id='lg4Y3'></fieldset></dl></div>

          <bdo id='lg4Y3'></bdo><ul id='lg4Y3'></ul>

        <small id='lg4Y3'></small><noframes id='lg4Y3'>

        <legend id='lg4Y3'><style id='lg4Y3'><dir id='lg4Y3'><q id='lg4Y3'></q></dir></style></legend>

        UITableView 动态单元格高度仅在一些滚动后正确

        时间:2023-09-11

                <bdo id='JELxE'></bdo><ul id='JELxE'></ul>

                <i id='JELxE'><tr id='JELxE'><dt id='JELxE'><q id='JELxE'><span id='JELxE'><b id='JELxE'><form id='JELxE'><ins id='JELxE'></ins><ul id='JELxE'></ul><sub id='JELxE'></sub></form><legend id='JELxE'></legend><bdo id='JELxE'><pre id='JELxE'><center id='JELxE'></center></pre></bdo></b><th id='JELxE'></th></span></q></dt></tr></i><div id='JELxE'><tfoot id='JELxE'></tfoot><dl id='JELxE'><fieldset id='JELxE'></fieldset></dl></div>
              • <legend id='JELxE'><style id='JELxE'><dir id='JELxE'><q id='JELxE'></q></dir></style></legend>
                <tfoot id='JELxE'></tfoot>

                  <small id='JELxE'></small><noframes id='JELxE'>

                    <tbody id='JELxE'></tbody>
                  本文介绍了UITableView 动态单元格高度仅在一些滚动后正确的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我有一个 UITableView 和一个自定义 UITableViewCell 在情节提要中使用自动布局定义.该单元格有几个多行 UILabels.

                  I have a UITableView with a custom UITableViewCell defined in a storyboard using auto layout. The cell has several multiline UILabels.

                  UITableView 似乎可以正确计算单元格高度,但对于前几个单元格的高度没有在标签之间正确划分.滚动一点后,一切都按预期工作(即使是最初不正确的单元格).

                  The UITableView appears to properly calculate cell heights, but for the first few cells that height isn't properly divided between the labels. After scrolling a bit, everything works as expected (even the cells that were initially incorrect).

                  - (void)viewDidLoad {
                      [super viewDidLoad]
                      // ...
                      self.tableView.rowHeight = UITableViewAutomaticDimension;
                  }
                  
                  
                  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
                      TableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"TestCell"];
                      // ...
                      // Set label.text for variable length string.
                      return cell;
                  }
                  

                  是否有什么我可能遗漏的东西,导致自动布局在最初几次无法完成其工作?

                  Is there anything that I might be missing, that is causing auto layout not to be able to do its job the first few times?

                  我创建了一个示例项目来演示这种行为.

                  I've created a sample project which demonstrates this behaviour.

                  推荐答案

                  我不知道这是否有明确的记录,但是在返回单元格之前添加 [cell layoutIfNeeded] 可以解决您的问题.

                  I don't know this is clearly documented or not, but adding [cell layoutIfNeeded] before returning cell solves your problem.

                  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
                      TableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"TestCell"];
                      NSUInteger n1 = firstLabelWordCount[indexPath.row];
                      NSUInteger n2 = secondLabelWordCount[indexPath.row];
                      [cell setNumberOfWordsForFirstLabel:n1 secondLabel:n2];
                  
                      [cell layoutIfNeeded]; // <- added
                  
                      return cell;
                  }
                  

                  这篇关于UITableView 动态单元格高度仅在一些滚动后正确的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:AutoLayout 链接两个 UILabel 以具有相同的字体大小 下一篇:自 Xcode 8 和 iOS10 以来,viewDidLayoutSubviews 上的视图大小不正确

                  相关文章

                  <small id='sZxW0'></small><noframes id='sZxW0'>

                  1. <tfoot id='sZxW0'></tfoot>
                      <bdo id='sZxW0'></bdo><ul id='sZxW0'></ul>

                    <legend id='sZxW0'><style id='sZxW0'><dir id='sZxW0'><q id='sZxW0'></q></dir></style></legend>

                    1. <i id='sZxW0'><tr id='sZxW0'><dt id='sZxW0'><q id='sZxW0'><span id='sZxW0'><b id='sZxW0'><form id='sZxW0'><ins id='sZxW0'></ins><ul id='sZxW0'></ul><sub id='sZxW0'></sub></form><legend id='sZxW0'></legend><bdo id='sZxW0'><pre id='sZxW0'><center id='sZxW0'></center></pre></bdo></b><th id='sZxW0'></th></span></q></dt></tr></i><div id='sZxW0'><tfoot id='sZxW0'></tfoot><dl id='sZxW0'><fieldset id='sZxW0'></fieldset></dl></div>