我有一個類似的tableview ..的UITableView - 插入行和滾動到一個特定章節
細胞XXXX,YYYY & ZZZZ是固定的,所以,沒有點擊的動作給他們。但單元格「顯示」是可點擊的。點擊時,我想在「顯示」單元格下顯示六個單元格。
所以,單擊 「顯示」 電池後,該表將看起來像..
在這裏,我做的是,
改變
cell.textLabel.text
「秀」到「隱藏」使用
[tableView reloadData];
在tableView:didSelectRowAtIndexPath:
方法。
我的代碼是:
- (void)viewDidLoad
{
[super viewDidLoad];
self.title = @"My title";
// This Mutable array contains the hided cell objects
hidedCellsArray = [[NSMutableArray alloc] initWithObjects:@"Cell 1", @"Cell 2", @"Cell 3", @"Cell 4", @"Cell 5", @"Cell 6", nil];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
...
else if(indexPath.section == 1)
{
if (isShowClicked) //isShowClicked is a boolean value that determines whether the show cell was clicked or not
{
if (indexPath.row == 0)
{
cell.textLabel.text = @"Hide";
cell.selectionStyle = UITableViewCellSelectionStyleBlue;
cell.textLabel.textAlignment=UITextAlignmentCenter;
}
else
{
cell.textLabel.text = [hidedCellsArray objectAtIndex:indexPath.row-1];
cell.selectionStyle = UITableViewCellSelectionStyleBlue;
cell.textLabel.textAlignment=UITextAlignmentCenter;
}
}
else
{
cell.textLabel.text = @"Show";
cell.selectionStyle = UITableViewCellSelectionStyleBlue;
cell.textLabel.textAlignment=UITextAlignmentCenter;
}
}
...
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == 1)
{
if (isShowClicked)
{
isShowClicked = NO;
}
else
{
isShowClicked = YES;
}
[tableView reloadData];
}
}
我需要什麼:
我想動畫的細胞,當我點擊顯示/隱藏按鈕。我開始知道,應該使用
insertRowsAtIndexPaths: withRowAnimation:
方法來實現插入效果。但我真的沒有看到任何簡單的例子。我是否應該包含其他方法,如setEditing:animated:
或tableView: commitEditingStyle: forRowAtIndexPath:
方法來做到這一點?第二件事是,在動畫(單元格插入)發生之前,我想將tableview移動到第2節(也就是「show」單元格)頂部。然後插入單元格的動畫應該會發生。因此,該表的單擊顯示電池後的最終外觀應如..
需要幫助..我只是困惑!