我想实现一个 ipad 视图,我在其中解析一个 xml 文件并将条目并排放在“无尽”的 ipad 视图上,所以你必须左右滑动它。有人可以告诉我如何实现这个吗?我必须使用哪种类型的视图?
提前致谢
问候
我想实现一个 ipad 视图,我在其中解析一个 xml 文件并将条目并排放在“无尽”的 ipad 视图上,所以你必须左右滑动它。有人可以告诉我如何实现这个吗?我必须使用哪种类型的视图?
提前致谢
问候
使用一个非常大contentSize
的不是要走的路。contentSize
仍然使用固定的数据类型,如果你滚动足够长的时间,它们会溢出,充其量,你的绘图会变得混乱。最坏的情况是,您的应用程序崩溃。
您想要的是通过使用窗口给人一种无限滚动的印象。我将通过一个简单的一维示例来说明它是如何工作的,但是您可以轻松地将其扩展到二维。
假设您有 3 个条目,每个条目都填充UIScrollView
. 向右滚动,它似乎是这样排列的:
A B C A B C A B C ...
在内部,您将像这样安排它们:
C A B C
因为当 A 可见时,向右滑动可以看到 C 的一部分,向左滑动可以看到 B 的一部分。
你UIScrollView
的contentOffset
就是你的窗口。虽然contentSize
包含所有四个实体的宽度 ( C A B C
),但在内部您将其限制为实际宽度的 75%。当您的用户左右滚动时,您会进行调整contentOffset
,使其永远不会为负数或不超过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
,并且控制器是您的UIScrollView
委托。
这将比不断发布和重新创建视图更有效。
您使用启用了分页的 UIScrollView。要点是将 myscrollView.contentSize 设置为所有页面的总宽度,但在滚动发生时及时创建各个页面(请参阅 UIScrollViewDelegate 文档);换句话说,当您只需要三个视图时,您不希望实际上有几十个或更多视图耗尽内存——当前视图以及前一个和下一个视图。这个来自苹果的示例代码应该让你开始:http: //developer.apple.com/iphone/library/samplecode/Scrolling/Introduction/Intro.html