Cocoa touch 如何管理scolling组件中的内存?

Cocoa touch 如何管理scolling组件中的内存?,cocoa-touch,memory-management,scroll,Cocoa Touch,Memory Management,Scroll,除了在Cocoa中使用的循环单元外,是否有已知且经验证的方法使用滚动组件(如表格或网格)管理内存?以这种方式布置视图所需的计算顺序和数据源/委托调用可以正常工作,但也会使复杂的动画与单元格相协调,并且容易出现滚动视图错误,因为在重新加载数据时,您必须仔细注意调用顺序,滚动到影响动画目标帧的布局偏移和其他机制。我正在寻找一种更具声明性的方法来为滚动视图提供内容,并让它找到一种智能的方式来管理它的内存,就像浏览器在加载具有长垂直图片布局的DOM时所做的那样。我发现创建自己的自定义布局类更容易,这些类

除了在Cocoa中使用的循环单元外,是否有已知且经验证的方法使用滚动组件(如表格或网格)管理内存?以这种方式布置视图所需的计算顺序和数据源/委托调用可以正常工作,但也会使复杂的动画与单元格相协调,并且容易出现滚动视图错误,因为在重新加载数据时,您必须仔细注意调用顺序,滚动到影响动画目标帧的布局偏移和其他机制。我正在寻找一种更具声明性的方法来为滚动视图提供内容,并让它找到一种智能的方式来管理它的内存,就像浏览器在加载具有长垂直图片布局的DOM时所做的那样。

我发现创建自己的自定义布局类更容易,这些类只在我的视图上进行布局,而不强制使用复杂的协议,如NSTableViewDataSource等,使动画难以编程。我想知道我的视图在任何时候的确切位置,每个视图的完整层次结构,我不想让模型与我的视图保持同步,所以我在视图上存储数据。在我看来,屏幕上的对象是我作为程序员喜欢编排的唯一对象。我想要对它们进行直接的声明式控制,有点像游戏编程人员。通过直接对滚动视图进行子类化,并遵循Cocoa的正常
layoutSubviews
方法之外的非常简单的布局规则,以避免意外布局,我能够更好地控制动画,并制作更复杂、更流畅的动画。希望这能激励其他人也这么做。

您不向NSScrollView提供内容,它也不要求,它所做的只是滚动视图。您使用的是什么数据视图(NSTableView、NSOutlineView、MSMatrix等)?该数据视图使用多少单元格?动画到底有什么问题?我正在Twitter开源库中类似于
UIScrollView
的组件
TUIScrollView
之上编写一个自定义布局。我不喜欢向组件提供内容的datasource/delegate样式,因为调试核心动画更改可能很困难。在一个典型的类似NSTableView的实现中,该表有多个方法来执行在不同时间调用的布局逻辑。如果编码不完美,这些可能会意外中断动画。我想要一种更具声明性的样式,这样我就可以将所有的动画计时在一起,比如在调整其他动画的大小时设置一行的动画。