0

UICollectionViewCell의 사용자 지정 하위 클래스를 셀의 크기 (60pt x 60pt)를 정의하는 Xib와 함께 만들었습니다. 프로그래밍 방식으로 UICollectionViewCell 크기를 변경하는 방법

은 또한 다음과 같은 구현 :

- (CGSize)collectionView:(UICollectionView *)collectionView 
        layout:(UICollectionViewLayout *)collectionViewLayout 
    sizeForItemAtIndexPath:(NSIndexPath *)indexPath { 
    CGSize size = [MainScreen screen]; 
    CGFloat width = size.width; 
    CGFloat item = (width*60)/320; 
    return CGSizeMake(item, item); 
} 

내가 실행 해요 문제는 내가 내 프로그램을 실행할 때마다, 내 UICollectionView 컨트롤러에있는 세포는 항상 60X60 세포로 나타날 것입니다. 게다가, 나는 375x667 포인트 인 아이폰 6을 테스트 해왔다. (수학을 할 때, 셀은 60x60이 아닌 ~ 70x70이어야한다.)

프로그래밍 방식으로 셀 크기를 변경하거나 (미리 정의 된 Xib 크기를 재정의하려면 어떻게합니까?)

+1

보기 컨트롤러가 UICollectionViewDelegateFlowLayout 대리자로 설정되어 있는지 확인 했습니까? – JiuJitsuCoder

+0

네, 그걸로 저는 다음과 같은 것을 의미한다고 가정합니다 :'[self.collectionView setCollectionViewLayout : flowLayout];','[self.collectionView setDelegate : self];' –

+0

사실, 컨트롤러는 헤더 파일의'UICollectionViewDelegateFlowLayout'으로 설정됩니다. –

답변

0

이것은 내 경험상 단 한 건도 보이지 않았습니다. sizeForItemAtIndexPath:이 제대로 작동했지만 셀 이미지의 실제 프레임은 item 매개 변수를 기반으로 다시 정의해야했습니다. 따라서 내 컬렉션 뷰 셀의 크기를 CGSizeMake(100,100)으로 하드 코딩 한 경우 셀을 차지할 이미지 프레임의 크기를 100x100으로 조정해야했습니다.

+0

당신이 그것을 알아 냈기 때문에 기쁩니다! – JiuJitsuCoder