5 мая 2015 г.

UINavigationBar анимация сокрытия-показа / UINavigationBar hide-show animation

Иногда необходимо немного больше места на экране для отображения более детального и большего количества информации. Обычно при этом прячут UINavigationBar. Почему бы это не сделать при помощи анимации:





- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [self.navigationController.navigationBar lt_reset];
}

#pragma mark - UINavigationBar hide/show animation methods

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGFloat offsetY = scrollView.contentOffset.y;
    if (offsetY > 0) {
        if (offsetY >= 44) {
            [self setNavigationBarTransformProgress:1];
        } else {
            [self setNavigationBarTransformProgress:(offsetY / 44)];
        }
    } else {
        [self setNavigationBarTransformProgress:0];
        self.navigationController.navigationBar.backIndicatorImage = [UIImage new];
    }
}

- (void)setNavigationBarTransformProgress:(CGFloat)progress
{
    [self.navigationController.navigationBar lt_setTranslationY:(-44 * progress)];
    [self.navigationController.navigationBar lt_setContentAlpha:(1-progress)];
}

4 комментария:

  1. Анонимный20.10.2015, 15:32

    >> Файл, который вы пытаетесь скачать, больше не существует.
    Пожалуйста, перезалейте категорию для UINavigationBar

    ОтветитьУдалить
    Ответы
    1. Привет. Поменял ссылку. Недавно слетел МЕГА. Походу многие ссылки слетели :). Теперь думай-гадай. Спасибо за инфу.

      Удалить
  2. А как убрать backIndicator?

    ОтветитьУдалить