Выбор нескольких ячеек В табличном представлении - PullRequest
2 голосов
/ 12 мая 2011

Я хочу загрузить фотографии в твиттер, фейсбук и твик фото и многое другое.Я взял это в массиве и отображается в виде таблицы.Я использую shareKit.Я закодировал, как если я выберу одну ячейку (например, Twitter), то он загрузит фотографию в твиттер. Я хочу выбрать более одной ячейки и выполнить это действие по отправке на одну кнопку (отправить выбранному элементу строки).Я могу пометить / снять отметку с ячеек, но как получить выбранное значение ячейки.Я не хочу, чтобы он находился в режиме редактирования таблицы ..

Код:

-  (void) tableView:(UITableView *)atableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {


    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
        cell.accessoryType = UITableViewCellAccessoryNone;
    }


    else {

        cell.accessoryType = UITableViewCellAccessoryCheckmark;
    }



}

Ответы [ 5 ]

3 голосов
/ 12 мая 2011

Пусть sourceArray будет вашим массивом, который вы используете для заполнения таблицы. И selectedObjects будет массивом выбранных объектов, инициализированных, чтобы содержать 0 объектов. Это должна быть (частная) переменная экземпляра класса.

//NSMutableArray *selectedObjects = [[NSMutableArray array] retain];

-  (void) tableView:(UITableView *)atableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    YouObjectType *object = [sourceArray objectAtIndex:indexPath.row]; //This assumes that your table has only one section and all cells are populated directly into that section from sourceArray.
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
        cell.accessoryType = UITableViewCellAccessoryNone;
        [selectedObjects removeObject:object];
    }
    else {
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
        [selectedObjects addObject:object];
    }
}

Затем в методе действия отправки для описанной вами кнопки используйте объекты в массиве selectedObjects для выполнения требуемой операции.

1 голос
/ 12 мая 2011

Вы также можете сделать это с помощью галочки в табличном виде, как ..

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)path {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:path];
 if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
cell.accessoryType = UITableViewCellAccessoryNone;
} else {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
}
0 голосов
/ 15 апреля 2014

Вы можете использовать этот репозиторий github JLSelectionTVC (https://github.com/nvrtdfrst/JLSelectionTVC), который выполняет это

enter image description here

0 голосов
/ 12 мая 2011

Получите indexPath.row в didSelectRowAtIndexPath, вы можете узнать, какая ячейка была выбрана.

0 голосов
/ 12 мая 2011

Вы можете управлять им в массиве, указав, какая ячейка выбрана, а какая нет, когда вы выбираете строку, а затем в didSelectRowAtIndexPath обновляете этот массив в соответствии с вышеуказанным условием и используете этот массив при загрузке изображений.Например, у вас есть массив, в котором есть два объекта словаря для ключа @ "image" и @ "isSelected", и вы заполняете таблицу этим массивом, а когда вы выбираете строку, тогда обращаетесь к элементу из массива в качестве объекта словаря на indexPath.rowи обновите этот словарь «true» или «flase» для ключа «isSelected».

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