如何更新iOS PhotoScroller示例代码

时间:2011-12-20 20:38:36

标签: ios uiview uiscrollview

我在我的应用程序中使用PhotoScroller中的更改示例代码。我有一个图像缩略图的表视图,我可以将填充该表的图像数组传递给PhotoViewController。目前,PhotoViewController从我的数组中的第一个图像开始,我可以来回滚动。这适用于Apple的示例代码。

现在我要做的是点击带有缩略图的表格单元格,然后从该索引处的数组中的图像开始滚动图像。例如:如果我在表格中有5张图像并且我点击图像#3,我希望PhotoViewController中的第一张图像成为第三张图像,并且能够向左或向右滚动到#2或#4。希望这是有道理的。

我在PhotoViewController中看到每个图像都添加了子视图。无论如何,我可以告诉它“跳到第3视图”而不破坏其他视图或它们的整体外观顺序?欢迎任何想法或建议。代码可以在iOS开发者网站上找到PhotoScroller示例代码。

好的,我在闲聊......先谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

我这样做的方法是让一个名为startingPage的变量在照片视图控制器的初始化器中设置。然后,在创建页面时,首先为滚动视图设置正确的偏移量。

因此,在loadView的PhotoScroller案例中。像这样:

- (void)loadView 
{
    // Step 1: make the outer paging scroll view
    CGRect pagingScrollViewFrame = [self frameForPagingScrollView];
    pagingScrollView = [[UIScrollView alloc] initWithFrame:pagingScrollViewFrame];
    pagingScrollView.pagingEnabled = YES;
    pagingScrollView.backgroundColor = [UIColor blackColor];
    pagingScrollView.showsVerticalScrollIndicator = NO;
    pagingScrollView.showsHorizontalScrollIndicator = NO;
    pagingScrollView.contentSize = [self contentSizeForPagingScrollView];
    pagingScrollView.delegate = self;
    self.view = pagingScrollView;

    // Set the content offset of the scrollview
    CGRect bounds = pagingScrollView.bounds;
    CGPoint contentOffset = CGPointMake(bounds.size.width * startingPage, 0.0f);
    [pagingScrollView setContentOffset:contentOffset animated:NO];

    // Step 2: prepare to tile content
    recycledPages = [[NSMutableSet alloc] init];
    visiblePages  = [[NSMutableSet alloc] init];
    [self tilePages];
}