2012-08-10 86 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

相關問題