我想实现一个ipad视图,我解析一个xml文件并将这些条目并排放在“无尽的”ipad视图上,因此你必须左右滑动它。谁能告诉我如何实现这个?我必须使用哪种类型的视图?
提前致谢
问候
答案 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