#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 для этого случая. Проще и эффективнее в использовании.