views:

328

answers:

1

This has me stumped. I'm trying to figure out how to save the state of a UIScrollView. For example, I have several images in a UIScrollView that are loaded like so:

    NSUInteger i;
for (i = 1; i <= kNumImages; i++)
{
    NSString *imageName = [NSString stringWithFormat:@"image%d.jpg", i];
    UIImage *image = [UIImage imageNamed:imageName];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
}

Now my question is how can I make it where the user can return to the image that they stopped scrolling at? Does anyone know how to accomplish this? Thanks.

+5  A: 

Try this:

NSUserDefaults  *defaults = [NSUserDefaults standardDefaults];
[defaults setFloat: scrollview.contentOffset.x forKey: @"myScrollPositionX"];
[defaults setFloat: scrollview.contentOffset.y forKey: @"myScrollPositionY"];

To restore:

scrollView.contentOffset = CGPointMake([defaults floatForKey: @"myScrollPositionX"], [defaults floatForKey: @"myScrollPositionY"]); 
Ben Gottlieb
Works perfect!! Thanks Ben!! I was trying to use a objectForKey which didn't work haha... Thanks Again.
0SX
I had to use `[NSUserDefaults standardUserDefaults]` for this to work. Thanks for the answer.
nevan