【问题标题】:heightForRowatIndexPath does not set cell heightheightForRowatIndexPath 不设置单元格高度
【发布时间】:2012-08-08 00:46:12
【问题描述】:

我正在尝试创建一个包含 3 个组的分组表视图,每个组都有不同高度的单元格。我在我的 Storyboard 中设置了 3 个具有适当高度的原型单元,并设置了我的 UITableViewController 以返回每行的适当高度。但是由于某种原因,我的所有单元格在屏幕上显示时都只有 1 个像素高。

我已经单步执行了代码,并为每一行返回了正确的高度和单元格。我还验证了每个单元格的框架在返回之前是正确的。然而,调用rectForRowAtIndexPath 会发现每行的rect 只有1 个像素高。

当使用恒定的像元高度时,这个问题就完全消失了。在这种情况下,单元格显示完美,其中一些太短/太高,因为它们应该是可变高度。

有什么想法吗?我想了解在使用heightForRowAtIndexPath 时如何确定每行的矩形。

heightForRowAtIndexPath 的代码:

- (NSInteger)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{    
    switch (indexPath.section) {
        case 0:
            return 80.0;
            break;

        case 1:
            return 260.0;
            break;

        case 2:
            return 110.0;
            break;

        case 3:
            return 114.0;
           break;

        default:
            break;
    }
    return 0;
}

【问题讨论】:

  • 你能把heightForRowAtIndexPath的代码贴出来吗?
  • 发布您的代码,否则我们将无法提供帮助。
  • 刚刚添加了我的代码。注意我也试过只返回一个数字,这会导致同样的问题。例如,如果我将 rowHeight 设置为 55,一切正常,但如果我从 heightForRowAtIndexPath 返回 55,则所有单元格都是 1 像素高。
  • @cezarcp 同意。我已经检查过了,rowHeight 绝对没有在其他任何地方设置。

标签: ios uitableview heightforrowatindexpath


【解决方案1】:

您已声明 tableView:heightForRowAtIndexPath: 以返回 NSInteger

应该是CGFloat

【讨论】:

  • 非常感谢。我不敢相信我错过了。这让我发疯了。
【解决方案2】:

只是增加行的高度。简单地在indexpath写一个行的高度的方法一个简单的写

if (indexpath.section== 0)

  return 50;

【讨论】:

  • andrew brown 你可以写理论部分,我写编码部分。简单的区别..你看不出区别..:-)))
  • 这不起作用。正如我在上面的评论中所说,即使只返回 50(没有 if 语句)也不起作用。
  • 它在我的项目中不起作用。我需要了解如何确定单元格矩形的高度,以及如何使用 heightForRowAtIndex 路径来确定它。从 heightForRowAtIndex 路径返回正确的值,但单元格的高度不正确。
  • yaa.此代码用于增加行高而不是单元格...我同意你的观点。
猜你喜欢
  • 1970-01-01
  • 2013-01-01
  • 2014-07-05
  • 2012-01-06
  • 2012-08-26
  • 1970-01-01
  • 1970-01-01
  • 2015-04-28
  • 1970-01-01
相关资源
最近更新 更多