Я пытаюсь имитировать то, что Apple Inc. использует в своем приложении «Сообщения», где у них есть вид прокрутки, который перенастраивается на надлежащее смещение, если вы вышли выше верхней части содержимого прокрутки.Смещение содержимого содержимого UIScrollView не работает по назначению
My scrollview занимает весь экран, но у меня есть строка заголовка, которая находится перед содержимым (например, «Сообщения»). При касании вида прокрутки смещение немедленно отбрасывается, как мусор, и верхнее содержимое скрывается под заголовком.
Мой код в настоящее время:
- (void)viewDidLoad
{
[super viewDidLoad];
[self.scroller setDelegate:self];
[self.scroller setScrollEnabled:YES];
[self.scroller setContentSize:CGSizeMake(320, 600)];
//****this offset is for the title bar****
[self.scroller setContentOffset:CGPointMake(0, -100) animated:YES];
// Do any additional setup after loading the view.
}
и у меня есть функция пытается перенастроить вид на основе местоположения: у
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y < 10){
NSLog(@"%@",NSStringFromCGPoint(scrollView.contentOffset));
[scrollView setContentOffset:CGPointMake(0, -100) animated:YES];
}
}
Эта функция принимает LONGGGG ВРЕМЯ, прежде чем повторно настраивает вид.
Итак, наконец, мои вопросы:
Как я могу убедиться, что на ощупь, Scrollview не игнорирует содержание смещения, а затем медленно приспосабливается назад к собственно смещение вскоре после этого.
Как изменить скорость, с которой смещение содержимого переустанавливается, так что оно похоже на «Сообщения»?
Вы должны добавить этот код в 'scrollViewDidEndDragging', как он вызывается только при взаимодействии пользователя с scrollView. Поскольку вы устанавливаете его смещение в 'scrollViewDidEndDecelerating', он меняет смещение по окончании торможения. Затем снова, после того, как установлено смещение, 'scrollViewDideEndDecelerating' вызывается снова, а смещение снова установлено, и этот процесс происходит рекурсивно. – n00bProgrammer
Не помещайте свой вопрос в Xcode. Прочтите описание тега. Это не относится к вашему вопросу. – rmaddy
оба комментария были полезны; однако переключение на scrollViewDidEndDragging не решило проблему. Как ни странно, загрузка на симулятор отлично работает, его при запуске через iphone возникает проблема (полностью обновленная версия ios) – kjbradley