콘텐츠에 따라 셀 크기가 다른 컬렉션보기 기반 레이아웃이 있습니다. 일반 셀은 200x200 픽셀이지만 내용이 없으면 콜렉션 뷰 자체와 동일한 크기의 셀을 표시합니다.iOS7의 UICollectionViewCell 하위 클래스에서 제약 조건이 업데이트되지 않았습니다.
나는 올바른 크기를 계산
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath
를 사용합니다.
셀에 대한 내 하위 뷰는 제약 조건을 업데이트하지 않습니다. 셀은 정말로 단순합니다. 셀 슈퍼 뷰 내에 중심에 있어야하는 UILabel입니다. 나는 수평 및 수직 중심 구속 조건 (또한 각 모서리를 수퍼 뷰에 고정하려고 시도 함)을가집니다. 결과는 Interface Builder (Storyboard)에 입력 된 것과 동일한 크기와 위치를 가져옵니다.
셀과 레이블 모두에 배경색을 설정했는데 셀이 올바른 크기로 표시되지만 레이블에는 표시되지 않습니다.
문제는 iOS7에만 존재하며 iOS8에서와 같이 작동합니다.
도와주세요!
이 흥미로운 질문이다. 그런데 최근에 유사한 문제가 발생했지만 반대의 경우가 발생했습니다. 콜렉션 뷰 셀 내부의 하위 뷰는 부모 뷰가 iOS7에서 크기가 조정 된 후 해당 제약 조건에 올바르게 정렬되었습니다. 그러나 iOS8에서는 발생하지 않았습니다. 후자의 경우 walkaround iOS8 문제를 해결하기 위해 -layoutSubiews 메서드를 사용했습니다. 두 개의 iOS 버전에서 동일한 문제가 다르게 발생하는 것은 궁금합니다. 나는 아직 답을 모른다. 그걸 파헤칠 시간이 없다 ... 나는 iOS8 업데이트를 빨리 풀어 줘야했다! – viggio24
Xcode 6에서 iOS8 프로젝트로 프로젝트를 시작한 후 기본 대상 버전을 낮췄습니다. 어쩌면이 동작은 프로젝트가 생성 된 버전에 달려 있습니다. –
프로젝트의 -layoutSubviews에서 어떻게 수정 했습니까? –