Разные разделы содержат разное количество строк внутри табличного представления в iOS

#objective-c #ios

#objective-c #iOS

Вопрос:

Предположим, у меня есть разделы 1, 2 и 3 в табличном представлении,

Для раздела 1 у него 3 строки
для раздела 2, у него 5 строк
для раздела 3, у него 1 строка

Как я могу реализовать это действие в Objective-c numberOfSectionsInTableView и numberOfRowsInSection ? Какие-либо дополнительные вещи, которые мне нужно сделать, помимо этих двух функций? Спасибо

Ответ №1:

Если это статические данные, то сделайте так

 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 3;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

if(section==0)
return 3;
else if(section==1)
return 5;

return 1;
}
  

и если оно основано на базе данных, создайте правильную структуру данных и используйте ее для управления.

Комментарии:

1. Если данные являются динамическими, как я могу достичь той же цели (разные разделы с разным номером строки)? Спасибо

2. создайте словарь, для которого вы хотите отобразить, и задайте в нем массив с ключом, а затем заполните массив, затем для количества разделов подсчитайте количество разделов массива, который содержит словари, и для строк обратитесь к словарю с помощью indexPath.section и key (это дает массив), затем количество этого показывает количество строк.строки для этого столбца.

Ответ №2:

 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 3;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    if (section == 0)
        return 3;

    if (section == 1)
        return 5;

    if (section == 2)
        return 1;

    return 0;

}
  

Вам также необходимо реализовать, чтобы метод UITableViewDataSource

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  

Комментарии:

1. Если данные являются динамическими, как я могу достичь той же цели (разные разделы с разным номером строки)? Спасибо

2. вы могли бы, например, иметь NSArray (или NSDictionary) из NSArrays, например, возвращать количество основного массива для количества разделов и количество подмассивов для количества строк в каждом разделе.

3. Возможно, стоит использовать оператор switch для этого случая. Проще и эффективнее в использовании.