0

UICollectionViewCellのカスタムサブクラスと、セルのサイズを定義するXib(60pt x 60pt)を作成しました。UICollectionViewCellサイズをプログラムで変更する方法(Xibを使用)

私はまた次のように実装:

- (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ポイントのiPhone 6でテストしています(したがって、数学を行うには、セルは60x60ではなく70x70でなければなりません)。

セルのサイズをプログラムで変更する(または、定義済みのXibサイズをオーバーライドする)方法を教えてください。

+1

あなたのView ControllerがUICollectionViewDelegateFlowLayoutデリゲートとして設定されていることを確認しましたか? – JiuJitsuCoder

+0

はい、それで、私はあなたが次のことを意味していると仮定しています: '[self.collectionView setCollectionViewLayout:flowLayout];'、 '[self.collectionView setDelegate:self];' –

+0

実際には、コントローラーはヘッダーファイルの 'UICollectionViewDelegateFlowLayout'に設定されます。 –

答えて

0

これは私の終わりを示すだけの経験不足でした。 sizeForItemAtIndexPath:が正常に動作していましたが、セルイメージの実際のフレームはitemパラメータに基づいて再定義する必要がありました。だから私がCGSizeMake(100,100)のコレクションビューセルのサイズをハードコードした場合、セルを占有するイメージフレームのサイズを100x100に変更する必要がありました。

+0

あなたはそれを理解してうれしいです! – JiuJitsuCoder

関連する問題