我有UITableViewController
使用Interface Builder制作静态单元,并添加了三种不同类型的单元格。
第一个单元格是某种细节, 最后一个单元格允许用户输入反过来显示中心单元格。
我希望重复使用中心单元格,并在用户输入最后一个注释框时添加新单元格。
我的问题是,因为它的静态细胞我不能单独重用中心细胞。我该如何解决呢。请帮忙。
答案 0 :(得分:3)
不要使用静态细胞。静态细胞不打算重复使用。使用静态单元格,您只需在xib中创建一个表。
创建三个不同的原型单元格,并为它们提供不同的重用标识符,并像常规单元格一样使用它们。
由于您的表分为几个部分,因此只需使用indexPath的section信息返回正确的单元格。
这样的事情应该有效:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 3;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (section == 1) {
return _objects.count;
}
return 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = nil;
if (indexPath.section == 1) {
cell = [tableView dequeueReusableCellWithIdentifier:@"SecondCell"];
// configure the mid cells
NSDate *object = [_objects objectAtIndex:indexPath.row];
cell.textLabel.text = [object description];
}
if (indexPath.section == 0) {
cell = [tableView dequeueReusableCellWithIdentifier:@"FirstCell"];
// configure first cell
}
else if (indexPath.section == 2) {
cell = [tableView dequeueReusableCellWithIdentifier:@"ThirdCell"];
// configure last cell
}
return cell;
}
也可以查看tableFooterView
和tableHeaderView
属性。也许你根本不需要第一个和最后一个项目的单元格。