我有一个IOS应用程序,让用户刷过几周的笔记。每周都是一个UIViewController - 视图控制器之间的滑动和切换由UIPageViewController处理。许多视图控制器 - 性能问题
在启动时,所有的视图控制器都会初始化其数据。
当用户刷我GRAP这样的视图控制器:
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
if let currentPageViewController = viewController as? SinglePageViewController {
let currentIndex = currentPageViewController.index
return self.weeks[currentIndex - 1]
}
return nil
}
该应用程序工作无瑕疵,直到使用有许多周,由此许多视图控制器。启动时间开始成为一个问题 - 随着这几周的进行,这种情况只会变得更糟。
我玩过每个视图控制器初始化当用户滑动。就像这样:
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
if let currentPageViewController = viewController as? SinglePageViewController {
let currentIndex = currentPageViewController.index
let newVC = SinglePageViewController()
newVC.index = currentIndex - 1
return newVC
}
return nil
}
这种方法适用和启动时间是伟大的 - 但是,刷卡现在已经变得迟缓和不顺畅的。
任何人都可以建议如何解决这个问题?
你可以尝试设置它,一旦你的应用程序达到某个点(视图控制器的数量),它开始回收旧的视图控制器显示未来几周的笔记。 –
而不是在你滑动时初始化视图控制器,你应该在每个方向初始化一对,而不是仅仅是下一个。 – pbush25
@ twist295,你有这样的例子吗? – Rasmus