iPhone - изменить строку отступа для ячейки при редактировании - PullRequest
0 голосов
/ 02 июля 2010

Я пытаюсь изменить отступ для пользовательского содержимого UITableViewCell (а именно, изображения, кнопки и метки) при редактировании UITableView.

Я пытался изменить ширину и уровень отступа ячейки, как это

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

и это никуда меня не привело.

Я также реализовал

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

функция.

Опять ничего.

Я хочу увеличить уровень отступа, скажем ... до двойного.

Кто-нибудь знает, как это сделать?

Спасибо!

Ответы [ 3 ]

1 голос
/ 14 февраля 2011

У меня была проблема с отсутствием отступа для режима редактирования, но я выяснил, что я добавил подпункты в ячейку вместо cell.contentView - все компоненты должны быть добавлены как подпредставление cell.contentView .

0 голосов
/ 06 мая 2013
- (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
0 голосов
/ 02 июля 2010

Вы перезагрузили камеру? См. Следующие методы в документации UITableView:

- (void)reloadData
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...