2012-03-20 27 views
2

解決: 我已經想通了這一點,對不起 - 傻在我的部分錯誤。基本上我的桌子上沒有分隔符,每個單元格底部都有一個自定義邊框。這個邊界沒有被正確地重新定位在較高的細胞中,使細胞看起來更高。很明顯,一旦我選擇了一個單元格並且出現了選擇背景。heightForRowAtIndexPath行的索引不匹配的cellForRowAtIndexPath行索引

我有一個有趣的問題,希望有一個明顯的解決方案或解釋。

我有一個UITableView應該有10行相等的高度,但第一個單元應該比其餘的稍高。

我有以下代碼:

-(NSInteger)numberOfSectionsInTableView:(UITableView*)tableView { 

    return 1; 
} 


-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section { 

    return 10; 
} 


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

    return indexPath.row == 0 ? defaultCellHeight + 20 : defaultCellHeight; 
} 


-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath { 

    switch(indexPath.row) { 
      case 0: 
        //text = First Row Text 
       break; 
      default: 
        //text = something else 
       break; 
    } 

    //return some sort of cell here 
} 

現在我看到的問題是,在第二排被比其他國家要高,不是第一次,因爲我期望的那樣。任何想法,爲什麼這是?

我認爲這是第一行被認爲是頭或東西,但無法找到解決方法。隨後的指標也相應地低於我預期的1。

+0

請貼上完整的代碼,我嘗試,但它似乎是與上面的代碼 – Hanuman 2012-03-20 12:38:53

+0

沒有問題,你加一個標題視圖在所有?或部分標題?上面的代碼看起來很好。問題一定在其他地方。截圖也可能有幫助。 – 2012-03-20 12:40:44

+0

我已經知道了這一點,對不起 - 我的錯誤。基本上我的桌子上沒有分隔符,每個單元格底部都有一個自定義邊框。這個邊界沒有被正確地重新定位在較高的細胞中,使細胞看起來更高。很明顯,一旦我選擇了一個單元格並且出現了選擇背景。 – Genesis 2012-03-20 13:34:42

回答

0

嘗試:

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

if ([indexPath row] == 0) 
return defaultCellHeight + 20 
else 
return defaultCellHeight 

} 

測試了它,併爲我工作