gpt4 book ai didi

ios - 在后台线程上访问 UIView 的属性

转载 作者:行者123 更新时间:2023-12-01 19:36:22 26 4
gpt4 key购买 nike

我试图让我的 CollectionView 在 View 出现后滚动它的第一个单元格,然后在按下按钮时再次滚动。问题是 collectionView 没有在任何 View 生命周期函数中生成它的所有单元格。

我的解决方案是在后台线程上创建一个 while 循环,检查是否 collectionView.visibleCells.count > 0 ,如果是,则返回主线程并滚动到第一个单元格。但是,我得到一个错误,告诉我我不应该访问 visibleCells关闭主线程,当我这样做时,应用程序会发出声音。

如何在主线程上实现此功能,或检查后台线程中的单元格数量?

private func scrollToFirst() {
DispatchQueue.global(qos: .background).async { [weak self] in
if (self != nil) {
while(self!.collectionView.visibleCells.count != 0) {
DispatchQueue.main.async { [weak self] in
self!.collectionView.scrollToItem(at: IndexPath(item: 0, section: 0), at: .centeredHorizontally, animated: true)
}
}
}
}
}

最佳答案

有一个委托(delegate)方法willDisplay在collectionViewCell 显示之前被调用。如果您之前没有单元格并且这会被调用,那么您知道您即将从零单元格变为超过零单元格。

关于ios - 在后台线程上访问 UIView 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59975453/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com