Tom
Tom

Reputation: 640

How to scroll to a certain point in a UIScrollView

Below I have a line of code that scrolls to a certain point in a UIScrollView. However once it has scrolled there it does not allow me to scroll back up.

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

Any help will be appreciated, thank you.

Upvotes: 3

Views: 2909

Answers (3)

Arman Arutiunov
Arman Arutiunov

Reputation: 31

I had this kind of problem because I called this method from viewDidLayoutSubviews(). Check where are you calling it from. When I moved the logic to viewDidAppear() everything worked as expected. Hope it helps, cheers.

Upvotes: 1

Kyle Ryan
Kyle Ryan

Reputation: 51

I use this. The button calls this method. Should work well.

- (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) {
    }];
}

Upvotes: 3

Anshul Jain
Anshul Jain

Reputation: 99

did you try using UIScrollView method scrollRectToVisible: Here is an example

- (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
}

Upvotes: 3

Related Questions