- (void)viewDidLoad
{
[super viewDidLoad];
arraylist = [[NSMutableArray alloc]init];
array5 = [[NSMutableArray alloc]init];
array1 = [[NSMutableArray alloc]init];
objects = @[@"Medical Services In Chicago",@"Medical Services On Campus"];
arrObjectValueChicago = @[@"Ronald McDonald® Children's Hospital of Loyola",@"Burn Centers",@"Gottlieb Hospitals"];
array3 = [[NSMutableArray alloc]init ];
for(int i = 0; i<[arrObjectValueChicago count];i++){
dictList3 = [[NSDictionary alloc]initWithObjectsAndKeys:@"2",@"level",[arrObjectValueChicago objectAtIndex:i],@"name", nil];
[array3 addObject:dictList3];
}
NSDictionary *dictList2 = [[NSDictionary alloc]initWithObjectsAndKeys:@"Hospitals",@"name",@"1",@"level",array3,@"Objects",nil];
NSMutableArray *array2 = [[NSMutableArray alloc]initWithObjects:dictList2, nil];
for (int i =0; i<[objects count]; i++) {
dictionary =[[NSDictionary alloc]initWithObjectsAndKeys:[objects objectAtIndex:i],@"name",@"0",@"level",array2,@"Objects", nil];
[array1 addObject:dictionary];
}
// arrObjectValueCampus = @[@"Cardinal Bernardin Cancer Center1",@"Center for Heart & Vascular Medicine2"];
// level = @[@"0",@"1",@"2",@"3"];
// NSDictionary *dictList2 = [[NSDictionary alloc]initWithObjectsAndKeys:@"Hospitals",@"name",@"1",@"level",dictList3,@"Objects",nil];
// NSDictionary *dictList1 = [[NSDictionary alloc]initWithObjectsAndKeys:@"0",@"level",@"Medical Services In Chicago",@"name",dictList2,@"Objects",nil];
dictList = [[NSDictionary alloc]initWithObjectsAndKeys:array1,@"Objects", nil];
NSLog(@"Dictionary :: %@",dictList);
// [arraylist addObject:[dictList valueForKey:@"Objects"]];
arrayOriginal = [dictList valueForKey:@"Objects"];
[arraylist addObjectsFromArray:arrayOriginal];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - TableView
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [arraylist count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ;
}
cell.textLabel.text = [[arraylist objectAtIndex:indexPath.row]valueForKey:@"name"];
NSLog(@"Label :: %@",cell.textLabel.text);
[cell setIndentationLevel:[[[arraylist objectAtIndex:indexPath.row] valueForKey:@"level"] intValue]];
return cell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSDictionary *d = [arraylist objectAtIndex:indexPath.row];
if ([d valueForKey:@"Objects"]) {
NSArray *ar = [d valueForKey:@"Objects"];
BOOL isAlreadyInserted = NO;
for(NSDictionary *dInner in ar){
NSInteger index=[arraylist indexOfObjectIdenticalTo:dInner];
isAlreadyInserted=(index>0 && index!=NSIntegerMax);
if(isAlreadyInserted) break;
}
if(isAlreadyInserted) {
[self miniMizeThisRows:ar];
} else {
NSUInteger count=indexPath.row+1;
NSMutableArray *arCells=[NSMutableArray array];
for(NSDictionary *dInner in ar) {
[arCells addObject:[NSIndexPath indexPathForRow:count inSection:0]];
[arraylist insertObject:dInner atIndex:count++];
}
[tableView insertRowsAtIndexPaths:arCells withRowAnimation:UITableViewRowAnimationBottom];
}
}
}
#pragma mark - TableAnimation
-(void)miniMizeThisRows:(NSArray*)ar
{
for(NSDictionary *dInner in ar) {
NSUInteger indexToRemove=[arraylist indexOfObjectIdenticalTo:dInner];
NSArray *arInner=[dInner valueForKey:@"Objects"];
if(arInner && [arInner count]>0){
[self miniMizeThisRows:arInner];
}
if([arraylist indexOfObjectIdenticalTo:dInner]!=NSNotFound) {
[arraylist removeObjectIdenticalTo:dInner];
[tblist deleteRowsAtIndexPaths:[NSArray arrayWithObject:
[NSIndexPath indexPathForRow:indexToRemove inSection:0]]
withRowAnimation:UITableViewRowAnimationBottom];
}
}
}
@end
您是否曾經找到過解決方案?我已經問過類似的問題[這裏](http://stackoverflow.com/questions/5713192/how-can-i-change-the-amount-of-indentation-on-my-custom-uitableviewcell-while-edi) 。 – 2011-04-19 07:51:42