iosuiscrollview

UIScrollView scroll to bottom programmatically


How can I make a UIScrollView scroll to the bottom within my code? Or in a more generic way, to any point of a subview?


Solution

  • You can use the UIScrollView's setContentOffset:animated: function to scroll to any part of the content view. Here's some code that would scroll to the bottom, assuming your scrollView is self.scrollView:

    Objective-C:

    CGPoint bottomOffset = CGPointMake(0, self.scrollView.contentSize.height - self.scrollView.bounds.size.height + self.scrollView.contentInset.bottom);
    [self.scrollView setContentOffset:bottomOffset animated:YES];
    

    Swift:

    let bottomOffset = CGPoint(x: 0, y: scrollView.contentSize.height - scrollView.bounds.height + scrollView.contentInset.bottom)
    scrollView.setContentOffset(bottomOffset, animated: true)