我目前正在开发一款使用UIScrollView的iPad应用。 UIScrollView中填充了UIImage,所有图像都比iPad的宽度大,宽度的两倍,1536px。我想要它做的是当滑动/轻弹它将滚动到第二个图像,即1536和第三个图像到3072,依此类推。只是为了看到滑动时的快速图像。我已经看过scrollViewDidEndDragging但它有时会变得非常讨厌和跳跃。
有没有办法将动画设置为每次与UIScrollView中的最后一个UIImage分开滚动1536?我知道你可以使用setContentOffset但是如果我在上面的方法中使用它,它就不能正常使用当前的转换,因此使它非常跳跃。
修改
for (i = 1; i <= kNumImages; i++)
{
NSString *imageName = [NSString stringWithFormat:@"cocktail_%d.png", i];
UIImage *image = [UIImage imageNamed:imageName];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
CGRect rect = imageView.frame;
rect.size.width = kMainImageWidth;
rect.size.height = kMainImageHeight;
rect.origin = CGPointMake(xpos, 0);
imageView.frame = rect;
[mainImgScrollView addSubview:imageView];
[imageView release];
xpos += kMainImageWidth;
}
修改
我需要做的就是使UIScrollView 1536px宽,并且它有效。该应用程序将有6个图像开始,以及将来更多。希望开始时不会出现内存问题?
感谢您的帮助。
答案 0 :(得分:1)
页面大小是UIScrollView大小。使UIScrollView本身大于iPad屏幕的宽度是完全可以接受的。如果你将UIScrollView 1536px宽,那么每页的宽度将是1536px。
要允许用户滚动并查看每张图片,您需要的是包含一行scrollview的滚动视图。外部scrollview是窗口中的一个,它是1536px宽,它只是用于分页。内部滚动视图是屏幕的宽度,它们的contentSize设置为图像大小,以便用户可以在每个视图中滚动并查看图像。
(但是,您需要重新考虑您的体系结构,因为您预先绘制了1536px宽的多个图像的应用程序将无法运行(因为它将超出设备的可用内存).WWDC2010视频包括关于这个主题的优秀演讲,即如何设计一个分页滚动视图,让你可以从图像到图像进行分页。)
答案 1 :(得分:0)
我想你想在你的UIScroll视图上打开分页。这将使其“捕捉”到滚动视图的宽度。它的行为就像iPad / iPhone上的主屏幕一样。您可能需要使scrollView的框架比屏幕更宽,以使分页效果更正确。无论您的图像大小如何,都可能会遇到一些延迟。