3

저는 몇 시간 동안이 문제에 어려움을 겪고 있습니다.iOS 7에서 무시 된 제한 사항 iOS 8에서 작업 중

사용자 지정 nib 파일이있는 사용자 지정 셀이있는 간단한 CollectionView를 사용하고 있습니다. 또한이 작업을 수행하여 셀의 크기를 설정합니다. - (CGSize)collectionView:(UICollectionView )collectionView layout:(UICollectionViewLayout)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { return collectionView.frame.size; } 저는 셀에 서브 뷰를 중심에 놓으려고하고 있습니다. iOS8에서 위대한 작업을하고 있으며, 뷰가 중앙에 위치하므로 viewWillTransitionToSize:reloadData을 호출하기 때문에 회전 할 때 셀 크기가 업데이트됩니다.

The Result in iOs8

그러나 iOS 용 7에 내가보기에 추가 중심의 제약 조건을 완전히 무시 것으로 보인다 iOS8의 의 결과.
collectionView:sizeForItemAtIndexPath: 메서드에서 셀 크기가 변경되면 실제로 제약 조건을 듣지 않는 것처럼 동작합니다.

내가 제대로 제약 조건을 설정하고 있는가 :

이 불쾌한 결과를주기? 나는 어딘가에 layoutIfNeeded 또는 needsUpdateConstraints 같은 것을 잊었습니까?

여기 내 문제가있는 간단한 작은 프로젝트를 다운로드 할 수 있습니다. http://goo.gl/mBmI1H

감사합니다.

답변

3

나 자신에 대답 할,

사실

내가 인터페이스 빌더에서 중심 제약을 제거하고 같은 코드에 추가하여 문제를 해결이 :

[self addConstraint: 
[NSLayoutConstraint constraintWithItem:self 
           attribute:NSLayoutAttributeCenterX 
           relatedBy:0 
           toItem:self.connectedContainer 
           attribute:NSLayoutAttributeCenterX 
          multiplier:1 
           constant:0]]; 

나는 -1부터이 이해가 안 돼요 Xcode 버전 6.0 (6A313)을 사용하고 있습니다.

나는 이것이 내가했던 것과 동일한 문제가있는 누군가를 도울 수 있기를 바랍니다.

+0

와우! 수집 셀에서 IB 센터의 제약으로 고생하는 시간이 너무 많아서이 답변이 해결되었습니다. 공유해 주셔서 감사합니다 :) –

관련 문제