如何在iPhone上创建时间轴

时间:2010-03-05 19:50:24

标签: iphone cocoa-touch uikit uiscrollview timeline

我正在尝试在我的iPhone应用中创建一个inifite时间轴来滚动浏览时间。我想我将使用UIScrollView来做到这一点,但我不知道该怎么做。

我是否应该从头开始创建一个可重复使用的视图队列,其中包含日/月/年的视图,并在它们离开屏幕时重复使用它们? (我想到了tableviews中可重复使用的单元格)。

也许还有更好的方法吗? 谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

据我所知,自3.0以来,UIScrollView没有宽度限制。然而,你不能用它来显示大量数据,因为它需要花费太多时间来绘制它,你的应用程序运行缓慢。

您可以使用宽度= 320.0 * 3的UIView。处理

- (void) touchesMoved: (NSSet*)_touches withEvent: (UIEvent*)_event

并申请

view.transform = CGAffineTransformMakeTranslation(-shift, 0.f);

此处的Shift可以根据从触摸设置中找到的delta X来计算。仿射翻译允许模仿平滑运动。当用户释放他们的手指(touchesEnded)时,使用移动的内容重绘您的视图(setNeedsDisplay)并将其取回:

self.transform = CGAffineTransformIdentity;

在touchesMoved时不要执行setNeedsDisplay,因为如果您正在绘制图形或计算某些内容,它会影响性能。

对于2D地图,您必须考虑X和Y并且具有320 * 3 X 480 * 3视图:)

这是一项有趣的任务。享受。

答案 1 :(得分:0)

嗯,UIScrollView是有限的,所以你会在一点上达到目的。你当然可以移动物品(后面),以确保你永远不会达到这个限制。

您当然希望执行一些缓存/分页ala UITableView,以确保只在内存中保留所需的最少视图。

如果您准备好了,请提出更具体的问题: - )