我有一个 UITableView 控制器、UITableView xib 和两个带有 xib 的 UITableViewCell 子类。我为每个 xib 拖出了一个单独的单元格。我的第一个单元格的高度是 115,而我的另一个单元格具有默认高度。当在我的控制器中调用 cellForRowAtIndexPath 时,我有一个条件语句,将第一行设置为我更大的单元格。之后的每一行都设置为我的另一个单元格。即使正在渲染较大的单元格,默认单元格也不会识别第一个单元格大于默认单元格的事实,因此默认单元格与较大的单元格重叠。我在较大单元格的底部设置了一个 distanceLabel 插座,以向您展示我的意思:
注意: 2.3 英里是第一个单元格的一部分。
- (void)viewDidLoad
{
[super viewDidLoad];
// load the cell nib
UINib *nib = [UINib nibWithNibName:@"CustomViewCell" bundle:nil];
UINib *bigNib = [UINib nibWithNibName:@"BigCell" bundle:nil];
//Register the nib
[[self tableView] registerNib:nib forCellReuseIdentifier:@"CustomViewCell"];
[[self tableView] registerNib:bigNib forCellReuseIdentifier:@"BigCell"];
}
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == 0) {
BigCell *cell = [tableView dequeueReusableCellWithIdentifier:@"BigCell"];
NSString *title = [self.frontList objectAtIndex:indexPath.row];
[[cell nameLabel] setText:title];
[[cell distanceLabel] setText:@"2.3 miles"];
return cell;
} else {
CustomFrontCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CustomViewCell"];
NSString *titles = [self.frontList objectAtIndex:indexPath.row];
[[cell nameLabel] setText:titles];
return cell;
}
}
如何使这些单元格以正确的间距和高度呈现?