Сворачиваемые разделы и несколько настраиваемых ячеек UITableViewCell для каждого раздела

Поэтому я много искал и не смог найти подходящего ответа на свой вопрос, т.е. рассмотрите табличное представление, которое должно иметь сворачиваемые заголовки разделов. Когда появляется TableView, все заголовки разделов свернуты. При нажатии на один из заголовков раздела он расширяется, чтобы предоставить ячейку формы, которая является настраиваемым представлением и содержит текстовые поля, кнопки, метки, переключатели и т. д. Аналогичным образом, при нажатии на любой другой заголовок раздела первый заголовок раздела сворачивается, а текущий открывается и имеет другое пользовательское представление с различными текстовыми полями, кнопками, индикаторами активности и т. д. Все они должны отображаться в табличном виде, чтобы область свертывания/развертывания была одинаковой и помогала пользователю легко взаимодействовать.

Также, пожалуйста, дайте мне знать, подходит ли мой подход, например, я хотел бы знать, могут ли аналогичные заголовки разделов иметь отдельные ячейки, которые имеют разные представления в качестве подвидов, поддерживающих требуемую функциональность.

Пожалуйста помоги. Я хочу создать следующее:

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


person Mohsin Khubaib Ahmed    schedule 20.12.2016    source источник


Ответы (1)


Поместите UIButton в ячейку заголовка и дайте ей действие следующим образом:

В методе viewForHeader:

 btn.tag = indexPath.row;
 [tapBtn addTarget:self action:@selector(openHeader:) forControlEvents:UIControlEventTouchUpInside];

Потом,

- (void)openHeader:(UIButton *)btn {
    if (selectedSection == btn.tag) {  // selectedSection be an Int value globally declared, initialised as -1
        selectedSection = -1;
    }
    else {
        selectedSection = btn.tag;   
    }
    [tableView reloadData]; 
}

In numberofRows :

if (section == selectedSection) {
    return count;
}
else {
    return 0;
}

Это сработало для меня, я надеюсь, что это сработает и для вас.

person Hrishikesh Menon    schedule 20.12.2016
comment
Спасибо за ваш ответ, и это определенно поможет мне свернуть разделы, однако это не отвечает на мой вопрос. Я обновил его. Пожалуйста, просмотрите - person Mohsin Khubaib Ahmed; 20.12.2016