2011-10-27 25 views
0

有没有已知的,经过验证的方法来管理内存滚动组件,如可再用的可再生单元以外的表格或网格?计算和数据源/委托调用的顺序需要使这种布局视图工作的方式,但也使协调与单元格的复杂动画和滚动视图错误倾向,因为你必须仔细注意调用序列,因为它重新加载数据,滚动到布局的偏移量和其他机制,以影响动画的目标框架。我正在寻找一种更具说明性的方法来向滚动视图提供内容,并让它通过长垂直布局的图片加载DOM来找出管理内存的智能方法,就像浏览器所做的那样。如何管理组件中的内存?

+0

你不提供内容给NSScrollView,它不要求它,它只是滚动它的视图。你使用了哪些数据视图(NSTableView,NSOutlineView,MSMatrix等)?该数据视图使用了多少个单元格?动画问题到底是什么? – hamstergene

+0

我正在'TUIScrollView'上编写一个自定义布局,这是Twitter开源lib中的'UIScrollView'组件。我不喜欢向组件提供内容的数据源/委托风格,因为调试Core Animation更改可能很困难。在一个典型的NSTableView类似的实现中,该表有多个方法来执行在不同时间调用的布局逻辑。如果没有完美编码,这些可能会意外地破坏动画。我想要一个更具说明性的风格,这样我就可以将所有的动画聚合在一起,比如在调整其他动画时动画。 –

回答

0

我发现创建自己的自定义布局类只能在我的视图上进行布局,而不是强加一个复杂的协议,如NSTableViewDataSource等使动画难以编程的类。我喜欢确切地知道我的视图在哪里,每个视图的完整层次结构,我不喜欢保持模型与视图同步,因此我将数据存储在视图本身上。在我看来,屏幕上的对象是我喜欢编排为程序员的唯一对象。我想直接对它们进行声明式控制,就像游戏程序员一样。通过直接继承滚动视图并遵循非常规的可可的方法之外的非常简单的布局规则来避免令人惊讶的布局,我能够更好地控制我的动画并执行更复杂和流畅的动画。希望这能激发别人也这样做。