1

重複の可能性:
UITableView のセクション間のスペースを減らす

グループ化されたスタイルを使用していてUITableView、セクション間のスペースを減らしたい.私はこれらを試しました:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
    UIView* customView = [[UIView alloc] initWithFrame:CGRectMake(10.0, 0.0, 300.0, 32)];

    UIImageView* headerbg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"top_bg.png"]];
    headerbg.frame = CGRectMake(8.0, 0.0, 302.0, 44.0);
    [customView addSubview:headerbg];

    UILabel * headerLabel = [[FontLabel alloc] initWithFrame:CGRectZero fontName:@"HelveticaNeue-Medium"
                                               pointSize:16.0f];
    headerLabel.backgroundColor = [UIColor clearColor];
    headerLabel.opaque = NO;
    headerLabel.textColor = [UIColor colorWithRed:17.0/255.0 green:117.0/255.0 blue:1.0/255.0 alpha:1.0];
    headerLabel.frame = CGRectMake(10, 10.0, 300.0, 30);
    headerLabel.text = @"Reserve";

    [headerbg addSubview:headerLabel];

    if(section == 1 || section == 2)
    {
        headerbg.image = nil;
        headerLabel.text = nil;
        return nil;
    }
    return customView;
}

-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{

    return nil;
}
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if (section == 0) {

        return 25;
    }
    else
        return 0;

}
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{

    return 0;
}

しかし、セクション間のスペースが増えています。私は何が欠けていますか?

4

1 に答える 1

4

コードを見てください。コードの一部の行を置き換えました:

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return 1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0) 
    return 25;
else
    return 1;
}
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
 UIView* customView = [[UIView alloc] initWithFrame:CGRectMake(10.0, 0.0, 300.0, 32)];

UIImageView* headerbg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"top_bg.png"]];
headerbg.frame = CGRectMake(8.0, 0.0, 302.0, 44.0);
[customView addSubview:headerbg];

UILabel * headerLabel = [[FontLabel alloc] initWithFrame:CGRectZero fontName:@"HelveticaNeue-Medium"
                                           pointSize:16.0f];
headerLabel.backgroundColor = [UIColor clearColor];
headerLabel.opaque = NO;
headerLabel.textColor = [UIColor colorWithRed:17.0/255.0 green:117.0/255.0 blue:1.0/255.0 alpha:1.0];
headerLabel.frame = CGRectMake(10, 10.0, 300.0, 30);
headerLabel.text = @"Reserve";

[headerbg addSubview:headerLabel];

if(section == 1 || section == 2)
{
    headerbg.image = nil;
    headerLabel.text = nil;
    return [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
}
return customView;
}
-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
return [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
}
于 2012-11-01T13:58:51.623 に答える