32 位 iPad:
64 位 iPad:
代码如下:
- (float) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 40.0;
}
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 40)];
[headerView setBackgroundColor:[UIColor grayColor]];
UILabel *nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 113, headerView.frame.size.height)];
nameLabel.font = [UIFont systemFontOfSize:14];
nameLabel.numberOfLines = 0;
nameLabel.textAlignment = NSTextAlignmentCenter;
nameLabel.text = @"Name";
[headerView addSubview:nameLabel];
nameLabel = [[UILabel alloc] init];
nameLabel.numberOfLines = 0;
nameLabel.font = [UIFont systemFontOfSize:14];
nameLabel.frame = CGRectMake(175, 0, 50, headerView.frame.size.height);
nameLabel.text = @"Risk Level";
[headerView addSubview:nameLabel];
nameLabel = [[UILabel alloc] init];
nameLabel.numberOfLines = 0;
nameLabel.font = [UIFont systemFontOfSize:14];
nameLabel.frame = CGRectMake(220, 0, 50, headerView.frame.size.height);
nameLabel.text = @"Code";
[headerView addSubview:nameLabel];
nameLabel = [[UILabel alloc] init];
nameLabel.numberOfLines = 0;
nameLabel.font = [UIFont systemFontOfSize:14];
nameLabel.frame = CGRectMake(280, 0, 60, headerView.frame.size.height);
nameLabel.text = @"Currency";
[headerView addSubview:nameLabel];
nameLabel = [[UILabel alloc] init];
nameLabel.numberOfLines = 0;
nameLabel.font = [UIFont systemFontOfSize:14];
nameLabel.frame = CGRectMake(420, 0, 100, headerView.frame.size.height);
nameLabel.text = @"Issuer";
[headerView addSubview:nameLabel];
return headerView;
}
最佳答案
找到解决方案。
必须使用 CGFloat 而不是 float 作为 heightForHeaderAtSection 的返回类型:
关于ios - UITableView 部分标题与 64 位 iPad 上的行重叠。在 32 位上工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21304447/