2013-10-12 4 views
2

Ниже у меня есть строка кода, которая прокручивается до определенной точки в UIScrollView. Однако, когда он прокручивается туда, он не позволяет мне прокручивать назад.Как прокрутить до определенной точки в UIScrollView

[scroller setContentOffset:CGPointMake(0,500) animated:NO]; 

Любая помощь будет оценена, спасибо.

+0

Что вы подразумеваете под 'это не позволяет мне прокручивать назад? ' –

+0

@Arkadiusz Holko Позвольте мне перетащить обратно uiscrollview и прокрутить его назад. Поскольку на данный момент, когда я установил смещение контента, он не позволяет мне прокручивать пляж вверх, он придерживается этой позиции. однако это позволяет мне прокручивать вниз. – user2874682

+0

Каков размер содержимого, прежде чем что-либо делать, и после прокрутки? Какие методы делегата прокрутки вызывают при прокрутке вверх? – Wain

ответ

2

Я использую это. Кнопка вызывает этот метод. Должно работать хорошо.

- (void)downExecute:(id)sender { 
    NSLog(@"scroll down"); 

    CGFloat currentOffset = _scrollView.contentOffset.y; 

    CGFloat newOffset;  
    newOffset = currentOffset + self.view.bounds.size.height; 

    [UIScrollView animateWithDuration:0.3 animations:^(void) { 
     [_scrollView setContentOffset:CGPointMake(0.0, newOffset)]; 
    } completion:^(BOOL finished) { 
    }]; 
} 
2

пытались ли вы с помощью метода UIScrollView scrollRectToVisible: Вот пример

- (void)goToPage:(int)page animated:(BOOL)animated 
{ 
    CGRect frame; 
    frame.origin.x = self.scroller.frame.size.width * page; 
    frame.origin.y = 0; 
    frame.size = self.scroller.frame.size; 
    [self.scroller scrollRectToVisible:frame animated:animated]; 

    // update the scroll view to the appropriate page 
} 
0

Я имел такого рода проблемы, потому что я назвал этот метод из viewDidLayoutSubviews(). Проверьте, откуда вы его вызываете. Когда я переместил логику в viewDidAppear(), все сработало, как ожидалось. Надеюсь, это поможет, ура.

Смежные вопросы