2014-06-05 2 views
5

나는 왜 이런 일이 일어나고 있는지 전혀 알지 못하지만 어떤 이유로 든 내가 사용하고있는 콜렉션 뷰는 무한히 [UICollectionViewData layoutAttributesForElementsInRect:] 메소드를 반복하고있다.layoutAttributesForElementsInRect의 무한 루프

컬렉션보기는 내 사용자 정의 탐색 모음 안에 있습니다. 이 사용자 지정 탐색 모음을 사용하는 한 시나리오에서 모든 것이 예상대로 작동합니다. 다른 시나리오에서는 무한 루프됩니다.

  • collectionView에서 데이터 소스 나 위임을 설정하지 않은 것으로 실험했습니다.
  • 데이터 소스를 설정하고 위임을 시도했지만 itemsInSection에 대해 0을 반환했습니다.
  • 작업 상황과 같이 자동 레이아웃을 사용하고 있으며 작업 상황과 같이 사용자 지정 탐색 모음을 초기화하고 있습니다.

게시 코드와 관련하여 게시 할 내용을 정확히 알지 못합니다. 무한 루프는 [UIWindow makeKeyAndVisible]이 호출 된 후 시작됩니다. 이 메서드는 결코 반환하지 않습니다. 문제를 일으키는 것이 바로 [UICollectionViewData layoutAttributesForElementsInRect:]이라는 것을 알게 된 것은 시간 프로파일 링 후에였습니다.

답변

11

numberOfItemsInSection이 0 일 때 요소없이 수동으로 contentOffset을 collectionView로 업데이트 할 때 [UICollectionViewData layoutAttributesForElementsInRect:] 내에서 동일한 무한 루프 문제가 발생했습니다.

+1

이 댓글은 우리 베이컨을 저장했습니다. 감사합니다 앤드류 – jakev

+1

난 충분히 당신을 감사 할 수 없다 ...! –

+0

남자, 2 일 전에 답을 찾았 으면 .. 빅 고맙습니다. – codrut

0

테이블 뷰에서 다른 컬렉션 뷰의 높이에 문제가있어서 UICollectionView inside a UITableViewCell — dynamic height?을 따라갔습니다. 하지만 실수로 스크롤 성능을 향상시킬 것이라고 생각했기 때문에 [self.collectionView layoutIfNeeded];을 주석 처리했습니다. 주석을 제거하고 다시 작업했습니다! 이유는 확실하지 않습니다.