处理MonoTouch中许多屏幕之间来回滑动的架构方法

时间:2012-11-18 00:30:09

标签: ios xamarin.ios

我正在开发适用于iOS的MonoTouch应用程序。

功能的很大一部分是用户需要连续在数据页面(屏幕)之间滑动并来回移动。

我需要记住内存消耗,所以我的想法是我一次只能在内存中有几个屏幕。例如,延迟仅提前加载下一个屏幕,因此当用户滑动时它可用。 (或滑动时的延迟加载)。

当用户滑回他们所在的上一页时,我需要确保该页面仍在内存中并且没有留下内存。落后的页面,一旦用户刷回,我就可以懒得重新加载。因此,我需要一种机制来向用户发送屏幕,如果用户暂时没有查看它们,并在用户滑动到该页面时自动加载它们。

我正在考虑创建一个对象列表,其中每个对象都有关于在视图上显示的内容的信息以及对实际视图本身的引用。如果此引用为null,我知道创建视图。如果引用存在且未处理,我只能向用户显示现有引用。当用户向左和向右滑动时,我可以转到列表中的下一个(或上一个)项目并执行相同的操作。检查它是否有视图引用并加载该视图,或创建它。

性能是关键,因为用户可能会刷过可能数百(或更多)的屏幕。

关于速度和内存管理的最佳架构的任何想法?

1 个答案:

答案 0 :(得分:0)

如果可能,密钥将重用视图。在我的应用程序中,我左/右滑动类似于我想要的,我只需要创建三个视图:一个用于“在屏幕上”,然后在屏幕右侧/左侧(尽管在需要之前不会创建左侧) )。

通过在线程中尽可能多地执行与页面构建相关的操作,您可以获得非常有创意,并且只需更新主线程上的UI。此外,在移动到右侧不可见页面之前加载新数据集时,我肯定首先关注可见页面,如果有意义,则不会显示页面。当用户滑动到新页面时,视图将被重用并在较大的UIScrollView内容区域中移动。