내 View Controller에 대한 스냅 샷 테스트를 사용하고 있습니다. 다음은 뷰 컨트롤러가 테스트에서 초기화되는 방식입니다.UICollectionView performBatchUpdates 완료가 화면 끄는 동안 호출되지 않았습니다.
window.addSubview(viewController.view) // simulate the view is visible (probably unnecessary)
viewController.view.frame = self.snapshotFrame // set frame
viewController.beginAppearanceTransition(true, animated: false) // simulate VC's life cycle
viewController.endAppearanceTransition()
내보기 컨트롤러에 UICollectionView가 포함되어 있습니다. performBatchUpdates를 사용하여 콜렉션 뷰 업데이트를 수행하면 업데이트 블록이 완료 되더라도 완료가 호출되지 않습니다.
// Animate udpates
self.collectionView.performBatchUpdates({
// is called
}, completion: { _ in
// never called
})
나는 그것이 컬렉션보기의 화면 렌더링과 관련이 있다고 생각합니다. 다른 사람이 비슷한 문제에 경험이 있습니까? UICollectionView가 화면에 있다는 것을 납득시키기 위해 누락 된 점은 무엇입니까?