Как выбрать несколько строк в UITableView в режиме редактирования?

Я хочу спросить, как я могу перейти в режим редактирования, где я могу выбрать несколько строк, как в приложении «Сообщения», когда вы нажимаете верхнюю правую кнопку «Выбрать», когда вы можете выбрать несколько сообщений, нажав на круги.

Так:

введите описание изображения здесь

Я много искал, правда, но ничего не нашел. Может кто-нибудь помочь мне? Некоторые советы


person Community    schedule 28.11.2015    source источник


Ответы (3)


Задавать

tableView.allowsMultipleSelectionDuringEditing = true

Снимок экрана

Демонстрационный код

class TableviewController:UITableViewController{
    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.allowsMultipleSelectionDuringEditing = true
        tableView.setEditing(true, animated: false)
    }
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
        cell.textLabel?.text = "\(indexPath.row)"
        return cell
    }
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 10
    }
}
person Leo    schedule 28.11.2015
comment
Как сделать, чтобы первые две ячейки были выбраны по умолчанию? Я пробовал cell.setSelected(true, анимированный: false), но не работал. - person Soumen; 11.10.2018
comment
Это работает для меня tableView.selectRow(at: indexPath, анимированный: false, scrollPosition: .none) - person Soumen; 11.10.2018
comment
как получить выбранные ячейки? - person Augusto; 07.12.2018

Если вы используете раскадровки, сделайте следующее:

введите описание изображения здесь

person Islam Q.    schedule 28.11.2015

NSMutableArray *selected;

объявите это в вашем файле viewcontroller.h ..

selected =[[NSMutableArray alloc]init];
for (int i=0; i<[YOUR_ARRAY count]; i++) // Number of Rows count
        {
            [selected addObject:@"NO"];
        }

добавьте такое же количество «НЕТ» в выбранный массив, используя приведенный выше код, для которого вам пришлось заменить YOUR_ARRAY массивом данных, который вы показываете в таблице.

    if(![[selected objectAtIndex:indexPath.row] isEqualToString:@"NO"])
{

    cell.accessoryType=UITableViewCellAccessoryCheckmark;

}

else
{
    cell.accessoryType=UITableViewCellAccessoryNone;
}

поместите приведенный выше код в свой -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)path {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:path];


if (cell.accessoryType == UITableViewCellAccessoryNone) {
    cell.accessoryType = UITableViewCellAccessoryCheckmark;
    [selected replaceObjectAtIndex:path.row withObject:@"YES"];
} else {
    cell.accessoryType = UITableViewCellAccessoryNone;
    [selected replaceObjectAtIndex:path.row withObject:@"NO"];
}

}

также заставить это работать правильно ..

person ash999    schedule 28.11.2015