2012-12-06 2 views
0

아래 스크린 샷에서 볼 수 있듯이 많은 셀이있는 UICollectionView가 있습니다. 현재 기기의 방향은 세로입니다. 나는 다음과 같은 코드를 가지고 있기 때문에UICollectionView 및 각 열의 셀 수

enter image description here

, 각 열에 많은 19 개의 세포가있다.

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section; 
{ 
    return UIEdgeInsetsMake(0, 100, 0, 100); 
} 

방향을 가로로 변경하면 각 열의 셀 수가 변경됩니다. 기기의 방향에 관계없이 동일한 수의 열을 가질 수 있습니까?

도움 주셔서 감사합니다.

+0

방향을 변경하면 상위 크기가 감소하여 열이 자동으로 화면에 맞지 않게됩니다. 설명서에서 행을 증가시키고 셀 수정을 유지하는 방법을 찾을 수 있을지도 모릅니다. –

답변

0

몇 가지 접근법이 있습니다. IB의 콜렉션 뷰에 너비 제약 조건을 추가 할 수 있습니다 (너비 방향에 단일 구속 조건 만 있거나 측면에 단일 구속 조건 만 있는지 확인하십시오).

또 다른 접근법은 방향에 따라 인셋을 변경하는 것입니다. didRotateFromInterfaceOrientation :을 재정의하고 interfaceOrientation 속성을 검사하여 현재 방향을 확인한 다음 적절하게 설정합니다.

+0

감사합니다. 나는 이미 후자를 시도했다. 그것은 작동하지 않는 것 같습니다. –

+0

@TBlue, 시도해야 할 코드를 게시하고 결과를 표시해야합니다. – rdelmar

+0

인세 트 설정이 제대로 작동하지 않는 이유를 이제 알았습니다. 각 방향의 인세 트를 재설정 한 후에 셀을 다시로드해야합니다. –

관련 문제