2010-11-04 167 views
2

我想要一个滚动视图,每次在滚动视图上显示5个缩略图。 基本上它是一行一行,每行都有5个缩略图。 您将手指向右滑动,然后显示下一组5个缩略图。UIScrollView和图像缩略图

我需要做什么?我们是否需要滚动视图才能这样做?我该如何开始?

回答

1

在你的UIView将包含在-viewDidLoad您的UIScrollView,地方(像)验证码:

UIScreen *screen = [UIScreen mainScreen]; 
pageWidth = screen.bounds.size.height; 
pageHeight = screen.bounds.size.width; 


scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, pageWidth, pageHeight)]; 
[scrollView setAutoresizingMask:UIViewAutoresizingNone]; 
[scrollView setContentSize:CGSizeMake(numPages * pageWidth, pageHeight)]; 
[scrollView setContentOffset:CGPointMake(pageWidth, 0)]; 
[scrollView setPagingEnabled:YES]; 
[scrollView setDelaysContentTouches:YES]; 
[scrollView setDelegate:self]; 
[scrollView setClearsContextBeforeDrawing:NO]; 
[scrollView setOpaque:YES]; 

[self.view insertSubview:scrollView atIndex:0]; 
[scrollView release]; 

// iterate through your thumbnails - which are UIViews 
thumbnailViews = [NSMutableArray array]; 
[thumbnailViews retain]; 
NSUInteger pageCounter = 0; 

for (...) 
    { 
    ThumbnailView *thumbnailView = [[ThumbnailView alloc] initWithFrame:CGRectMake(pageCounter*pageWidth, 0, pageWidth, pageHeight)]; 
    [thumbnailView setMultipleTouchEnabled:YES]; 
    [thumbnailView setViewController:self]; // this may be necessary to push/pop on navigation controller stack. 
    [thumbnailView restoreState]; 
    [scrollView thumbnailView]; 
    [thumbnailViews thumbnailView]; 
    ++pageCounter; 
} 

在我的情况下,页宽,pageHeight,thumbnailViews和滚动视图是我的UIView子类的所有实例变量。

+0

你能解释一下UIScreen的含义吗? – aherlambang 2010-11-04 23:10:03

+0

在我的情况下,我希望每个'缩略图'填充可用的屏幕空间。如果你对较小的区域感到满意,那么你可以定义pageWidth/pageHeight。从:“UIScreen对象包含设备整个屏幕的边界矩形。设置您的应用程序的用户界面,您应该使用此对象的属性来为应用程序的窗口获取推荐的框架矩形。“ – westsider 2010-11-04 23:13:31

+0

所以你说这个滚动视图会填满整个视图? – aherlambang 2010-11-05 02:38:05

0

我只是看着这里,因为我自己学习UIScrollView。我开始尝试让westsider的代码工作,但我注意到它实际上是一团糟。它应该在执行<UIScrollViewDelegate>协议的UIViewController中,而像[scrollView thumbnailView];这样的内容是没有意义的,因为这里的thumbnailView是一个方法名称。我相信http://www.codeproject.com/Articles/46556/How-To-Use-UIScrollView-in-Your-iPhone-App.aspx更连贯。

要回答这个问题,我想你想以标准的方式来创建一个UIScrollView - 如在链接,您要创建的UIView一个子类叫,说,UIView5有5 UIImageViews。然后,您不需要在UIScrollView(如[scrollView addSubview:standardUIView];)中添加正常的UIView,而是添加UIView5对象。