在我的应用程序中,我最初只会在UITableView
上显示一行。我想在用户使用数据加载前一行时增加行数(这里是一个uiimage)。现在我在numberOfRowsInSection:
方法中返回值1,因为我不知道如何以所需的方式实现它。请帮忙。
我的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];
}
如果条件和计数只是用于检查可变数组的正确功能,那就是“数组”。
答案 0 :(得分:1)
同时查看相关样本。
注意:在你的代码中,[array release]不会被调用,因为你之前有一个return语句。
答案 1 :(得分:0)
当您到达某个cellForRowAtIndexPath
的{{1}}时,表示正在显示该行。如果到达最后一行,则可以在表中插入新行。要做到这一点,您只需要增加indexPath
函数返回的计数。
我猜你的tableView:numberOfRowsInSection
函数看起来像这样:
numberOfRowsInSection
基本上,在cellForRowAtIndexPath中,添加以下代码:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return section==0 ? [array count] : 0;
}
您还需要刷新表格。一种方法是在UITableView上调用reloadData,但首选方法是在表上调用beginUpdates / insertRowsAtIndexPaths / endUpdates,以便显示正在插入的行的漂亮动画。