我有一个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;
}
}
如何使用正确的间距和高度来渲染这些单元格?
答案 0 :(得分:2)
您可以使用UITableViewDelegate方法tableView:(UITableView *)tableView heightForRowAtIndexPath:
来控制身高。