Анимация заголовка раздела табличного представления - PullRequest
0 голосов
/ 01 июля 2011

Я создал этот заголовок раздела табличного представления.По сути, это контейнер UIView, в который я поместил все элементы, которые будут добавлены в заголовок этого раздела.

Это представление контейнера возвращается

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 

, и все работает нормально.

Теперь я хочу, чтобы заголовок появлялся постепенно по мере появления таблицы.Итак, я сначала объявляю alpha = 0 для контейнера, а затем делаю это на viewDidAppear: (ах, эта таблица находится внутри отображаемого контроллера представления).

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];

    [UIView animateWithDuration:1.0
         animations:^{
             [self.tableHeader setAlpha:1.0f];
     }];

}

Ничего не происходит, и заголовок продолжаетбыть невидимым.

Я пытался добавить:

[self.tableView beginUpdates]; //and
[self.tableView beginUpdates];

до и после упомянутой анимации, но безуспешно.

Мне кажется, что заголовок таблицы необновляется и продолжает оставаться невидимым.

1 Ответ

5 голосов
/ 01 июля 2011

Во-первых, поместите NSLog в viewDidAppear и tableView:viewForHeaderInSection:

. Вы увидите, что viewDidAppear выполняется первым, когда tableView имеет асинхронную загрузку, и вы не знаете, когдавызовите viewForHeaderInSection.

Один из обходных путей следующий:

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

    _tableHeader = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)];
    _tableHeader.backgroundColor = [UIColor redColor];
    _tableHeader.alpha = 0;

    [UIView animateWithDuration:1.0
                 animations:^{
                     [_tableHeader setAlpha:1.0f];
                 }];

    return _tableHeader;

}

Просто вызовите анимацию, когда таблица вернет viewHeader.

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