uitableview: создать складной табличный вид (может использоваться для выпадающих меню) - PullRequest
0 голосов
/ 30 марта 2011

Я новичок в разработке для iphone и не могу понять различные методы и все.Я хочу создать складное табличное представление, которое расширяется и сворачивается при нажатии кнопки.

У меня есть следующие фрагменты в моей головоломке

1) Я думаю, мне придется использовать эти два метода дляanimation

[collapsibleTableView deleteRowsAtIndexPaths:editableIndexArray withRowAnimation:UITableViewRowAnimationTop ];
[collapsibleTableView insertRowsAtIndexPaths:editableIndexArray withRowAnimation:UITableViewRowAnimationTop ];

, но я не уверен в аргументе, который мне нужно передать методу deleteRowsAtIndexPath: и методу insertRowsAtIndexPath:.

2) У меня есть массив, который является источником данных дляэтот стол.

Было бы замечательно, если бы вы могли заставить меня понять, как именно это нужно сделать.

Ответы [ 2 ]

1 голос
/ 31 марта 2011

получил ответ и реализация

    - (NSArray*)indexPathsInSection:(NSInteger)section {
    NSMutableArray *paths = [NSMutableArray array];
    NSInteger row;

    for ( row = 0; row < [self numberOfRowsInSection:section]; row++ ) {
        [paths addObject:[NSIndexPath indexPathForRow:row inSection:section]];
    }

    return [NSArray arrayWithArray:paths];
}

-(NSInteger)numberOfRowsInSection:(NSInteger)section {

    return 4;
}


-(IBAction)expandCollapseMenu {

    NSArray *paths = [self indexPathsInSection:0];
    if (isExpanded) {
        isExpanded=NO;
        [actionBtn setTitle:@"Expand" forState:UIControlStateNormal];

        [menuTblView deleteRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationFade];


    }
    else {
        isExpanded=YES;
        [actionBtn setTitle:@"Collapse" forState:UIControlStateNormal];
        [menuTblView insertRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationFade ];
    }




}
0 голосов
/ 30 марта 2011

Под расширениями и контрактами подразумевается просто удаление всех записей (всей таблицы или по разделам?) Или анимация удаления / добавления представления таблицы с экрана.

Если вы имеете в виду удаление / добавление строк, то вам лучше всего иметь массив, содержащий все ваши действительные действительные данные, и массив, содержащий данные «Это то, что пользователь может видеть» - так что вы очистите это или его части при удалении / добавлении строк.

Чтобы получить indexPaths, вы можете использовать [NSIndexPath indexPathForRow:<#(NSUInteger)#> inSection:<#(NSUInteger)#>], чтобы создать отдельные пути и поместить их в массив, который вы передаете этому методу.

Просто убедитесь, что вы поддерживаете массив "Это то, что пользователь может видеть", когда вы добавляете / удаляете строки, так как когда в табличном представлении отображаются ячейки, он будет запрашивать ваши базовые данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...