Как я могу добиться этого эффекта?
Скрытие элемента панели инструментов, когда свитки UITableView (похоже на приложение Facebook)?
Ответ 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;
}
Ответ 4
Я создаю простой класс для этого эффекта: UIHidingView - это класс iOS, который отображает элемент UIView поверх UITableView, который скрывается при прокрутке Table View.
Ответ 5
Это ответит на ваш вопрос:
iPhone: скрыть панель поиска UITableView по умолчанию
та же концепция, различный контроль. Вы можете поместить UIView в верхнюю строку таблицы или любой другой соответствующий элемент управления, такой как кнопка.
Удачи.