我想要一个滚动视图,每次在滚动视图上显示5个缩略图。 基本上它是一行一行,每行都有5个缩略图。 您将手指向右滑动,然后显示下一组5个缩略图。UIScrollView和图像缩略图
我需要做什么?我们是否需要滚动视图才能这样做?我该如何开始?
我想要一个滚动视图,每次在滚动视图上显示5个缩略图。 基本上它是一行一行,每行都有5个缩略图。 您将手指向右滑动,然后显示下一组5个缩略图。UIScrollView和图像缩略图
我需要做什么?我们是否需要滚动视图才能这样做?我该如何开始?
在你的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子类的所有实例变量。
我只是看着这里,因为我自己学习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
对象。
你能解释一下UIScreen的含义吗? – aherlambang 2010-11-04 23:10:03
在我的情况下,我希望每个'缩略图'填充可用的屏幕空间。如果你对较小的区域感到满意,那么你可以定义pageWidth/pageHeight。从:“UIScreen对象包含设备整个屏幕的边界矩形。设置您的应用程序的用户界面,您应该使用此对象的属性来为应用程序的窗口获取推荐的框架矩形。“ –
westsider
2010-11-04 23:13:31
所以你说这个滚动视图会填满整个视图? – aherlambang 2010-11-05 02:38:05