2

是否有标准的 Aqua 方式来处理几乎无限的文档?

例如,想象一个基于图块的游戏的关卡编辑器。关卡没有预设大小(尽管它在技术上受NSInteger's 大小的限制);瓷砖可以放置在网格上的任何位置。是否有滚动浏览此类文档的标准界面?

我不能简单地将滚动限制在已经有图块的区域,因为用户需要能够在该边界之外添加图块。随意创建关卡大小,即使它很容易被用户更改,似乎也不理想。

有没有人见过处理这个问题的应用程序?

4

2 回答 2

7

一种选择是在用户滚动时实质上动态扩展该区域 - 每当用户在边缘的 X 个单位内滚动时,在该方向添加另一个单位。从本质上讲,您永远无法“一直”滚动到边缘,因为距离越近,它就会扩展得越远。

如果用户从边缘向后滚动,则将其收缩到不超过实际内容位置之外的 X 个单位。

于 2010-04-28T22:10:30.420 回答
2

您是否看到 Microsoft Excel 为这个问题做了什么?它还必须用滚动条表示一个无界的空间。

一种解决方案是为原始关卡大小定义一个合理的空间,当用户滚动到远离其边界的一个图块时,添加另一行或列图块,并相应地调整滚动条。这样,用户永远不会达到实际界限。

如果用户决定减少关卡大小,您还可以添加代码,在未使用的行仅包含空图块时缩小“合理空间”。这使用户免于被他们滚动浏览的巨大关卡所困,无法缩小它。

编辑:与戴夫的回答相同。:)

于 2010-04-28T22:13:46.703 回答