2012-08-10 87 views
1

我正在尝试创建一个带有3个组的分组表格视图,并且每个组都有不同高度的单元格。我在Storyboard中设置了3个具有适当高度的原型单元,并设置了我的UITableViewController来为每一行返回适当的高度。然而,由于某些原因,我的所有细胞在屏幕上出现时只有1个像素高。heightForRowatIndexPath不设置单元格高度

我已经通过了代码,每行返回正确的高度和单元格。我还验证了每个单元格的框架在返回之前是正确的。然而,调用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; 
} 
+0

你可以发布你的'heightForRowAtIndexPath'代码吗? – 2012-08-10 17:16:46

+0

发布你的代码没有,我们不会亚伯来帮助。 – AAV 2012-08-10 17:41:26

+0

刚刚添加我的代码。注意我也尝试过只返回一个单一的数字,这导致了同样的问题。例如,如果我将rowHeight设置为55,一切正常,但如果我从heightForRowAtIndexPath返回55,则所有单元格都是1像素高。 – 2012-08-10 18:10:45

回答

2

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

那应该是CGFloat

+0

非常感谢。我不能相信我错过了这一点。这让我疯狂。 – 2012-08-10 21:25:55

1

简单地以增加行高度.simply写高度排该方法在indexpath的简写

if (indexpath.section== 0) 

    return 50; 
+3

这与我上面发布的代码有什么不同? – 2012-08-10 18:42:02

+0

@丹尼尔..thnxs编辑... – Bajaj 2012-08-10 18:44:27

+0

安德鲁布朗你可以写出适当的部分,我编写的编码部分。简单的区别..不能看到区别.. :-))) – Bajaj 2012-08-10 18:47:22

相关问题