代码之家  ›  专栏  ›  技术社区  ›  andyvn22

无限文档的滚动条?

  •  2
  • andyvn22  · 技术社区  · 14 年前

    有没有标准的aqua方法来处理一个几乎无限的文档?

    例如,想象一个基于tile的游戏的级别编辑器。该级别没有预设大小(尽管它在技术上受到 NSInteger 的大小);瓷砖可以放置在网格的任何位置。有没有标准的界面可以滚动浏览这样的文档?

    我不能简单地将滚动限制到已经有瓷砖的区域,因为用户需要能够在该边界之外添加瓷砖。随意创建一个级别大小,即使它很容易被用户更改,也不太理想。

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

    2 回复  |  直到 14 年前
        1
  •  7
  •   Amber    14 年前

    一个选项是在用户滚动时动态地扩展该区域-每当用户滚动到边缘的x个单位内时,向该方向添加另一个单位。本质上,你永远无法“一直”滚动到一个边缘,因为你越靠近它就会扩展得越远。

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

        2
  •  2
  •   ChessWhiz    14 年前

    您看到了Microsoft Excel是如何解决这个问题的吗?它还必须用滚动条表示一个无边界的空间。

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

    如果用户决定减少级别大小,您还可以添加代码,在未使用的行仅由空的磁贴组成时缩小“合理空间”。这就避免了用户陷入一个巨大的水平,他们滚动,没有办法缩小它。

    编辑:与DAV的答案相同。:)