Добавление новых строк в UITableViewCell
-
18-09-2019 - |
Вопрос
В моем приложении я буду отображать только одну строку на UITableView
изначально.Я хочу увеличить количество строк, когда пользователь загружает предыдущую строку с данными (здесь uiimage).Поскольку сейчас я возвращаю значение 1, в numberOfRowsInSection:
метод, так как я не знаю, как реализовать его требуемым образом.Пожалуйста помоги.
Мой cellForRowAtIndexPath:
метод
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CustomCellIdentifier = @"CustomCellIdentifier";
CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CustomCellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CustomCellIdentifier ] autorelease];
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
for (id currentObject in nib){
if ([currentObject isKindOfClass:[CustomCell class]]){
cell = (CustomCell *)currentObject;
cell.viewController = self;
break;
}
}
}
if (j<15){
cell.imageView.image = nil;
if (count!=0)
{
@try{
NSInteger row = [indexPath row];
cell.imageView.image = [array objectAtIndex:row];
}
@catch (NSException* ex) {
NSLog(@"doSomethingFancy failed: %@",ex);
}
}
}
cell.showsReorderControl = YES;
return cell;
[array release];
}
что если условие и счетчик - это не что иное, как проверка правильности функционирования изменяемого массива, «массива».
Решение
Вам следует прочитать эту документацию: http://developer.apple.com/iphone/library/documentation/UserExperience/Conceptual/TableView_iPhone/Introduction/Introduction.html
Также обратите внимание на соответствующие образцы.
Примечание:в вашем коде [выпуск массива] не будет вызываться, поскольку перед ним есть оператор возврата.
Другие советы
Когда вы достигнете cellForRowAtIndexPath
в определенный indexPath
, это означает, что строка отображается.Если вы дойдете до последней строки, вы можете вставить новую строку в таблицу.Для этого вам просто нужно увеличить количество, возвращаемое функцией tableView:numberOfRowsInSection
функция.
Я предполагаю, что твой numberOfRowsInSection
функция будет выглядеть примерно так:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return section==0 ? [array count] : 0;
}
Итак, внутри cellForRowAtIndexPath добавьте следующий код:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
...
if([indexPath row]==[array count]-1) {
[array addObject:(NEXT_IMAGE)];
}
return cell;
}
Также необходимо обновить таблицу.Один из способов — просто вызвать reloadData в вашем UITableView, но предпочтительный способ — вызвать BeginUpdates/insertRowsAtIndexPaths/endUpdates в таблице, чтобы вы могли показать красивую анимацию вставляемой строки.