UICollectionView
画像を表示する があります。私の画像のサイズは 114x133 ですが、何らかの理由で実際の画像はUICollectionVewCell
これよりも大きくなっています (セルの背景を赤に設定しているため、これを見ることができます)。このため、ビューには 2 つの画像しか表示できず、2 つの画像の間には大きなギャップがあります。私は以下を実装しています
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
UIImage* img = [UIImage imageNamed:@"thumbnail_frame.png"];
return img.size;
}
- (UIEdgeInsets)collectionView:
(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
return UIEdgeInsetsMake(1, 1, 1, 1);
}
プログラムでセルを作成していcontentview
ます(つまり、initimageView
など)。
ビュー全体をプログラムで作成している別のビューで同じ問題に直面しています。そこで私は:
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
flowLayout.minimumInteritemSpacing=10;
flowLayout.minimumLineSpacing= 30;
flowLayout.sectionInset = UIEdgeInsetsMake(5, 5, 5, 5);
if(collectionView != nil) {
[collectionView removeFromSuperview];
}
CGRect frm= CGRectMake(45, 80, 250, 230);
collectionView = [[UICollectionView alloc] initWithFrame:frm collectionViewLayout:flowLayout];//(0, 0, self.view.frame.size.width, self.view.frame.size.height) collectionViewLayout:flowLayout];
collectionView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5];
collectionView.clipsToBounds = YES;
collectionView.layer.cornerRadius = 10.0;
collectionView.dataSource = self;
collectionView.delegate = self;
[collectionView registerClass:[YourPicCollectionViewCell class] forCellWithReuseIdentifier:@"YourPicCell"];
ここでも、2 つの画像の間に大きなギャップがあるか、幅を小さくすると 3 つの画像がありますが、一番右の画像が半分見えます。
間隔をいじりましたが、うまくいかないようです。何が問題なのですか?