2014-10-02 26 views
0

當您單擊TableView內的單元格時,它將展開。 如何實現,這是下面的方法:如何「縮小」TableView中的所有單元格並展開單擊的單元格

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

if ([self.topicsArray containsObject:indexPath]) 
{ 
    [self.topicsArray removeObject:indexPath]; 
} 
else 
{ 
    [_topicsArray addObject:indexPath]; 

} 

[_tableView beginUpdates]; 
[_tableView endUpdates]; 

} 

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

CGFloat kExpandedCellHeight = 240; 
CGFloat kNormalCellHeigh = 115; 


    if ([_topicsArray containsObject:indexPath]) 
    { 

     return kExpandedCellHeight; 
    } 
    else 
    { 
     return kNormalCellHeigh; 
    } 


} 

我想不出什麼如何做的是 - 如何「縮水」的TableView中的所有單元格之前,我展開一個點擊?

+0

嘗試'[_tableView beginUpdates]之間'[_tableView reloadData]'; [_tableView endUpdates];' – Elgert 2014-10-02 12:42:26

+0

那什麼也沒做:( – SteBra 2014-10-02 12:44:01

+0

'endUpdates'之後試試它應該可以工作,這再次調用高度的重新計算 – Elgert 2014-10-02 12:47:19

回答

0

aha我知道了你不要從數組中刪除索引。嘗試[topicsArray removeAllObjects]之前

if ([self.topicsArray containsObject:indexPath]) 
{ 
    [self.topicsArray removeObject:indexPath]; 
} 
else 
{ 
    [_topicsArray addObject:indexPath]; 

} 
相關問題