什么是在OS X中实现视图之间滑动的最佳方法?

时间:2012-12-19 23:03:30

标签: objective-c macos cocoa

在OS X中实现视图之间滑动的最佳方法是什么?这些视图是使用它们的视图控制器从nib初始化的,它们是相同的类类型。为了给出一些背景知识,每个视图显示当前日期的相关数据。

我想创建一个加载下一个(或前一个)日期数据的函数。我可以简单地将数据加载到当前视图中,但是我可以使用类似于在OS X中的空格之间滑动的动画吗?我想我必须初始化一个新视图,在那里加载数据,然后启动滑动过渡到新视图。

我担心创建所有这些新视图的表现会非常糟糕。以下是我考虑过的一些选项:

  • 创建一个NSDate到MYViewController的字典。从此hashmap加载并存储每个视图,但这可能需要大量内存。
  • 创建一个双向链接的MYViewController列表,并加载/存储顺序日期的视图。这可能会占用大量内存,如果用户跳转到某个日期,缓存就会被删除。

有什么想法?如果有一些方法可以在当前视图中加载数据,我觉得这是最好的选择。

谢谢!

2 个答案:

答案 0 :(得分:0)

您是否考虑过只使用UIScrollView并使用一个UIViewController来管理所有观看次数?以下是Ray Wenderlich在UIScrollView的网站上提供的一个很好的教程:

http://www.raywenderlich.com/10518/how-to-use-uiscrollview-to-scroll-and-zoom-content

或者,您是否考虑过使用水平表视图?这是第三方实施,我在其他SO帖子上看到了推荐:

https://github.com/TheVole/HorizontalTable

修改

抱歉,我很快就读到了您的问题,并认为这是针对iOS的......

我认为你可能正在寻找像NSCollectionView这样的东西(不确定这是否能以良好的水平方式支持屏幕外视图......?)

以下是关于它的文档:

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSCollectionView_Class/Introduction/Introduction.html

这是一个关于它的教程:

http://andrehoffmann.wordpress.com/2009/08/29/nscollectionview-tutorial-for-dummies-xcode-3-1-3/

(老实说没有做过多OSX开发,所以我的专业领域有点偏离......我祝你好运!)

答案 1 :(得分:0)

Cocoa视图过渡动画并不是一件容易的事。这比视图控制器管理要复杂得多。

您需要决定如何实现所需的效果。看一下这个文档和其他参考文献:Animation Programming Guide for Cocoa

几个月前我做过类似的工作。我的最终解决方案是使用单一视图并仅使用图形API(图像绘制)显示动画效果,因为它比Core Animation更简单。