我有这个应用程序:
我想在用户点击其中一个navBarItems(如Microsoft OUTLOOK)时更改标记区域。我一直在做一些研究,很多人说我可以添加几个面板,并在用户点击navBarItem时显示/隐藏它们。但该区域将包含许多网格视图和许多其他控件。我不知道我是否想在应用程序启动时初始化它们,因为在cpu和内存上很难保持所有控件同时运行。对于这种情况,我认为这不是一个优雅的解决方案。但是如果我选择在用户点击相应的navBarItem时初始化控件,那么对用户来说就会很慢。
针对这种情况的最佳设计方法是什么?
PS:我也可以使用商业图书馆。
谢谢。
答案 0 :(得分:0)
不一定非常迟钝。如果先显示屏幕然后在后台填充数据,则对用户来说可能看起来不太糟糕。此外,一旦特定屏幕被初始化,您可能会将其保留在内存中,以便用户导航到后续时间会更快。
另外,查看要加载到每个控件中的数据。有些数据是一样的吗?你能在后台预加载一些数据并保留它吗?
你有很多下拉列表吗?如果是这样,您是否可以预先填充或缓存某些下拉列表数据以提高性能?
是否有一个或两个面板将在大多数时间内使用?如果是这样,您可以预加载这些面板,以便用户可以更好地体验他们最常导航的面板。
加载数据的后台处理将使您的代码更加复杂,但这将是从您的应用程序获得良好响应时间的最佳方式。
Here是使用Task从UI运行后台线程的示例。
使用BackgroundWorker的另一个one。