当我从Parse没有返回数据时,我试图从表视图中删除表中的单元格。但无论我尝试什么,我找不到任何解决方案,以防止在包含内容的单元格之前有一个空白单元格(没有数据传递时的单元格)。
这是我的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object
static NSString *simpleTableIdentifier = @"RecipeCell";
NSString *identifier;
if (indexPath.row == 0) {
identifier = @"Cell";
} else if (indexPath.row == 1) {
identifier = @"Cell2";
}
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
}
// Configure the cell
if (![@"test" isEqual: [object objectForKey:@"teacher"]]){
UILabel *nameLabel = (UILabel*) [cell viewWithTag:101];
nameLabel.text = @"";
UILabel *prepTimeLabel = (UILabel*) [cell viewWithTag:102];
prepTimeLabel.text = @"";
return cell;
} else {
UILabel *nameLabel = (UILabel*) [cell viewWithTag:101];
nameLabel.text = [object objectForKey:@"message"];
UILabel *prepTimeLabel = (UILabel*) [cell viewWithTag:102];
prepTimeLabel.text = [object objectForKey:@"teacher"];
return cell;
}
}
感谢您提供任何帮助!
答案 0 :(得分:2)
您无法从UITableView
方法控制cellForRowAtIndexPath
中的单元格数量 - 您需要从numberOfRowsInSection
方法返回正确的值。请参阅UITableViewDataSource protocol reference和Table View Programming Guide
另外,这个代码块 -
if (indexPath.row == 0) {
identifier = @"Cell";
} else if (indexPath.row == 1) {
identifier = @"Cell2";
}
有点多余 - 你的所有单元格都是UITableViewCellStyleDefault
,所以它们是可以互换的。不需要使用两个不同的标识符 - 如果您打算在将来使用不同的自定义单元格类型,那么您可以保留此概念,但您可能不会直接使用indexPath.row,而是由数据类型驱动你所讨论的行的模型。