Swift - 强制视图在出现后加载数据

Swift - Force view to load data after appearing

嘿嘿,

我的两个视图控制器有点问题。 它们都是集合视图控制器。

我的问题是,如果我单击按钮打开第二个视图,它会滞后并且过渡不流畅。这种滞后的原因是视图为集合视图加载的数据束(大约 400 张照片和字符串)。

也许你们中的某个人知道我如何才能克服这种加载抑制。如果您需要更多信息 --> 请询问。

一个简单的解决方法是在后台线程中加载数据并在完成后重新加载集合视图(在 UI 线程中):

DispatchQueue.global(qos: .background).async {

    // load your data here

    DispatchQueue.main.async {
        // reload your collection view here:
        self.collectionView.reloadData()
    }
}

您可以使用此方法达到所需的结果。

override func viewDidLayoutSubviews() {
    // Configure the views 
}

另一方面,您有 self.view.setNeedsLayout()self.view.layoutIfNeeded()。找到适合你的那个。