Подтвердить что ты не робот

Скрытие элемента панели инструментов, когда свитки UITableView (похоже на приложение Facebook)?

Как я могу добиться этого эффекта?

full top view  half top view   top view almost hidden

4b9b3361

Ответ 1

Это не сразу видно из ваших скриншотов, но я считаю, что вы хотите, чтобы панель заголовков со скольжением продвигалась по мере прокрутки пользователя, не так ли? (Я бы предложил уточнить в этой части)

Вы можете сделать это несколькими способами, и во всех них вам придется реализовать свою собственную логику прокрутки, что означает, насколько панель заголовков скользит в зависимости от того, где вы прокрутили. Тем не менее, здесь, как это сделать:

1. Если вы используете UITableView, я предполагаю, что ваш контроллер просмотра установлен как delegate. Поскольку UITableView уже является подклассом UIScrollView, просто добавьте UIScrollViewDelegate к вашему контроллеру вида. Это даст нам возможность прокручивать события по мере их возникновения. Вы захотите сделать свою логику в scrollViewDidScroll:.

2.. Если вы просто используете UIScrollView, просто установите свой контроллер представления в качестве его делегата, внесите UIScrollViewDelegate и выполните свою логику в scrollViewDidScroll:.

Тем не менее, ваш код может выглядеть примерно так:

- (void) scrollViewDidScroll:(UIScrollView *)scrollView {
    CGPoint scrollPos = scrollView.contentOffset;

    if(scrollPos.y >= 40 /* or CGRectGetHeight(yourToolbar.frame) */){
        // Fully hide your toolbar
    } else {
        // Slide it up incrementally, etc.
    }
}

В любом случае, надеюсь, что я помог.

Ответ 2

Если вы правильно настроили делегат, ваша таблица вызовет scrollViewDidScroll: при прокрутке.

Итак, в вашем контроллере вы можете добавить что-то вроде:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (scrollView.contentOffset.y >0)    //means that the user began to scroll down the table
    {
        [UIView animateWithDuration:0.4 animations:^{
            //animations you want to perform
        }];
    }
}

Ответ 3

Здесь я реализовал код для UIView Hide/Show при прокрутке таблицы. Когда прокрутка таблицы просматривается, UIView скрывается, а при прокрутке вверх - показывается UIView. Надеюсь, это сработает для вас...!

Шаг 1: - Сделать одно свойство в файле .h

@property (nonatomic) CGFloat previousContentOffset;

Шаг 2: - Запишите этот код в scrollViewDidScroll.

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {

CGFloat currentContentOffset = scrollView.contentOffset.y;

if (currentContentOffset > self.previousContentOffset) {
    // scrolling towards the bottom
    [self.subButtonView setHidden:YES];
} else if (currentContentOffset < self.previousContentOffset) {
    // scrolling towards the top
    [self.subButtonView setHidden:NO];
}
self.previousContentOffset = currentContentOffset; 
}

Ответ 5

Это ответит на ваш вопрос:

iPhone: скрыть панель поиска UITableView по умолчанию

та же концепция, различный контроль. Вы можете поместить UIView в верхнюю строку таблицы или любой другой соответствующий элемент управления, такой как кнопка.

Удачи.