2016-07-28 4 views
2

UICollectionViewFlowLayout 변경할 수 없습니다 "컨텐츠로드를 ..."애플 리케이션은 서버에서 콘텐츠를 읽어 들인다 때,이 같은 수행합니다스위프트 - 내가 말하는 <code>UILabel</code>와 <code>UICollectionViewCell</code>에 대한 <code>collectionViewLayout</code>을 설정 <code>viewDidLoad</code>에 동적으로

let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() 
... 
// some configuration for the layout 

// here it crash: 
collectionView.setCollectionViewLayout(layout, animated: true) 

이이 메시지 말에 충돌 :

응용 프로그램을 종료

* 인해 캐치되지 않는 예외 'NSRangeException'에를, 이유 : '* - [__ NSArrayM objectAtIndex :] : 인덱스 0 '빈 배열의 범위를 넘는 *** 먼저 던져 호출 스택 : (0x24479b0b 0x23c36dff 0x2438a6d3 0x29275999 0x29271d13 0x29272aaf 0x28be537f 0x28be4667 0x1778dc 0x165f48 0x1661b8 0x16e774 0x16f038 0xf950c 0xf9174 0xdefb0 0xe1934 0xdf98c 0x52ed78 0x52d700 0x52bfc8 0x4df9c0 0x1531ba7 0x1531b93 0x1536659 0x2443b755 0x24439c4f 0x243881c9 0x24387fbd 0x259a4af9 0x28ac0435 0x131254 0x24034873) 의 libC++ abi.dylib : 내가했던 일들이 하나 collectionViewLayout가 서로 그 대체 설정 NSException

유형의 캐치되지 않는 예외로 종료.

invalidateLayout()으로 레이아웃을 무효화하려고 시도했으나 collectionView을 다시로드하기 전에 collectionViewLayout을 교체하면 여전히 충돌이 발생합니다.

동적으로 collectionViewLayout을 변경하려면 어떻게해야합니까? 또는 내가 뭘 잘못하고 있니?

감사합니다.

+0

예외 중단 점을 추가하면 문제를 정확히 파악할 수 있습니다. - https://developer.apple.com/library/ios/recipes/xcode_help-breakpoint_navigator/articles/adding_an_exception_breakpoint.html – Losiowaty

+0

문제 자체 - 장소 확인 배열에 액세스 할 때 코드에 실제로 무언가가 있는지 확인하십시오. 예외는 그것을 바로 거기에 말한다. – Losiowaty

+0

@Losiowaty 배열이 문제가되지 않는다고 생각합니다. 왜냐하면'collectionViewLayout'을 대체하려고하지 않으면 완벽하게 작동합니다. – pableiros

답변

5

나는 iOS9와 iOS8에서 동일한 문제를 쳤다.

내 경우에는 collectionView.collectionViewLayout.invalidateLayout() 후에 collectionView.layoutIfNeeded()으로 전화하십시오.