Некоторый разрыв остается между таблицей и заголовком таблицы только при загрузке таблицы и прокрутке до последней строки - PullRequest
1 голос
/ 15 сентября 2011

Редактировать: все работает нормально, но все же, когда таблица получает нагрузку. Между верхней частью таблицы и заголовком таблицы остается примерно 30 пикселей (или 1 строка).

Пожалуйста, помогите ....

Я прокручиваю, все работает нормально. Все строки таблицы прокручиваются, а заголовок таблицы фиксируется. Но когда я прокручиваю до конца таблицы, он теряет свойство исправления. Я имею в виду ограниченную прокрутку. Я хочу заморозить это абсолютно. В граничном условии он теряет верхнюю позицию таблицы и скользит примерно на 20 pxcls.

//Header Format starting
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return 20.0;
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section     
{
    if (tableView.tableHeaderView) { // header was already created... go away
        return tableView.tableHeaderView;
    }

    CGFloat width = 300.0f;
    CGRect rectArea = CGRectMake(10.0f, 5.0f, width, 25.0);

    tableView.tableHeaderView = [[[UIView alloc] initWithFrame:rectArea] autorelease];

    //UIColor *orange =  [UIColor colorWithRed:(255.0f/255.0f) green:(228.0f/255.0f) blue:0.0f alpha:1.0f];

    [tableView.tableHeaderView setBackgroundColor:[UIColor grayColor]];

    rectArea = CGRectMake(02.0f, 1.0f, width, 20.0);
    UILabel *lbl = [[UILabel alloc] initWithFrame:rectArea];
    lbl.text = NSLocalizedString(@"Bill Total", @"");
    lbl.textAlignment = UITextAlignmentLeft;
    //lbl.font = [UIFont systemFontOfSize:13.0f];
    lbl.font = [UIFont fontWithName:@"Courier New" size:14];
    lbl.font=[UIFont italicSystemFontOfSize:14];
    lbl.textColor = [UIColor blackColor];
    lbl.backgroundColor = [UIColor clearColor];
    lbl.numberOfLines = 2.0f;
    lbl.lineBreakMode = UILineBreakModeWordWrap;
    //[lbl sizeToFit];

    [tableView.tableHeaderView addSubview:lbl];
    [lbl release];

    // self.table.tableHeaderView.layer.cornerRadius = 6.0f;

    return table.tableHeaderView;
}

1 Ответ

2 голосов
/ 15 сентября 2011

Если я правильно понимаю ваш вопрос, похоже, вам просто нужен стол, чтобы не подпрыгивать. Если это так, все, что вам нужно сделать, это установить yourTable.bounces = NO; в вашей функции viewDidLoad. Либо так, либо снимите флажок «Bounces» в NIB, если вы использовали его для разметки таблицы.

Вот как исправить проблему, которую вы упомянули при редактировании ... Необходимо заменить следующие ссылки на tableView.headerView ссылками на новое представление, которое не передается в метод делегата.

    UIView *headerView = [[[UIView alloc] initWithFrame:rectArea] autorelease];
    //...    
    [headerView setBackgroundColor:[UIColor grayColor]];
    //...
    [headerView addSubview:lbl];
    //...
    return headerView;

Я попробовал, и это помогло мне. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...