我在我的应用程序中使用PhotoScroller中的更改示例代码。我有一个图像缩略图的表视图,我可以将填充该表的图像数组传递给PhotoViewController。目前,PhotoViewController从我的数组中的第一个图像开始,我可以来回滚动。这适用于Apple的示例代码。
现在我要做的是点击带有缩略图的表格单元格,然后从该索引处的数组中的图像开始滚动图像。例如:如果我在表格中有5张图像并且我点击图像#3,我希望PhotoViewController中的第一张图像成为第三张图像,并且能够向左或向右滚动到#2或#4。希望这是有道理的。
我在PhotoViewController中看到每个图像都添加了子视图。无论如何,我可以告诉它“跳到第3视图”而不破坏其他视图或它们的整体外观顺序?欢迎任何想法或建议。代码可以在iOS开发者网站上找到PhotoScroller示例代码。
好的,我在闲聊......先谢谢你的帮助!
答案 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];
}