iPhone - 编辑时更改单元格的缩进行

时间:2010-07-02 16:12:55

标签: iphone xcode uitableview

我正在尝试在编辑UITableView时更改自定义UITableViewCell内容的缩进(即图像,按钮和标签)。

我尝试像这样更改单元格的缩进宽度和级别

[cellToCustomize setIndentationLevel:1];
[cellToCustomize setIndentationWidth:20];

它让我无处可去。

我也实现了

-(NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath

功能

再一次,没有。

我想增加缩进级别,让我们说......为双倍。

有人知道怎么做吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

我的缩进没有出现编辑模式的问题,但我发现,我已将子视图添加到单元格而不是cell.contentView - 所有组件都应添加为cell.contentView的子视图< / strong>。

答案 1 :(得分:0)

你重装电池了吗?请参阅UITableView文档中的以下方法:

- (void)reloadData
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

答案 2 :(得分:0)

- (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