无尽的iPad刷卡?

时间:2010-04-21 11:00:22

标签: iphone cocoa-touch uikit ipad swipe

我想实现一个ipad视图,我解析一个xml文件并将这些条目并排放在“无尽的”ipad视图上,因此你必须左右滑动它。谁能告诉我如何实现这个?我必须使用哪种类型的视图?

提前致谢

问候

2 个答案:

答案 0 :(得分:2)

使用非常大的contentSize是不可取的。 contentSize仍然使用固定的数据类型,如果你滚动的时间足够长,它们会溢出,最多,你的绘图会变得混乱。最糟糕的情况是,您的应用程序崩溃了。

您想要的是通过使用窗口给人无限滚动的印象。我将用简单的一维示例说明它是如何工作的,但您可以轻松地将其扩展为二维。

假设您有3个条目,每个条目填充UIScrollView。滚动到右边,它看起来像是这样安排的:

A B C A B C A B C ...

在内部,你会像这样安排他们:

C A B C

因为当A可见时,如果向左滑动,如果向右滑动或部分B,则可以看到C的一部分。

UIScrollView的{​​{1}}是您的窗口。虽然contentOffset包含所有四个实体(contentSize)的宽度,但在内部,您将限制为实际宽度的75%。当您的用户向左和向右滚动时,您可以调整C A B C,使其永远不会为负值或超过contentOffset的75%。这是在您的代理人contentSize.width

中完成的
scrollViewDidScroll:

请注意,这假设一个实例变量- (void) scrollViewDidScroll:(UIScrollView *)scrollView { while (scrollView.contentOffset.x < 0) scrollView.contentOffset.x += constrainedContentSize.width; while (scrollView.contentOffset.x > constrainedContentSize.width) scrollView.contentOffset.x -= constrainedContentSize.width; // ... } ,可能在您的constrainedContentSize所在的视图的控制器中,并且该控制器是您的UIScrollView代理。

这比不断发布和重新创建视图要有效得多。

答案 1 :(得分:1)

您可以在启用分页的情况下使用UIScrollView。要点是将myscrollView.contentSize设置为所有页面的总宽度,但在滚动发生时及时创建单个页面(请参阅UIScrollViewDelegate文档);换句话说,当你只需要三个时 - 当前视图加上前一个和下一个视图时,你不希望实际上有几十个或更多的视图使用内存。这个来自apple的示例代码可以帮助您入门: http://developer.apple.com/iphone/library/samplecode/Scrolling/Introduction/Intro.html