【发布时间】:2022-11-17 15:05:01
【问题描述】:
我想在推送 VC 后立即更改集合视图的 contentOffset.x。
所以我在 viewWillAppear 中调用了collectionView.setContentOffset(~)。
但由于自动布局循环,它不起作用。
但是,如果我在DispatchQueue.main.async块内调用collectionView.setContentOffset,它就可以工作!
代码如下:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
DispatchQueue.main.async {
collectionView.setContentOffset(
CGPoint(x: currentFolderIndex * collectionView.bounds.width), y: 0),
animated: false
)
}
}
当我打印布局方法的顺序时,我弄清楚了为什么它会起作用。
DispatchQueue.main.async块在viewDidLayoutSubviews之后调用。
它总是这样吗?
为什么它会这样工作?
我很好奇!!
【问题讨论】:
标签: ios swift viewwillappear dispatch-queue