簡體   English   中英

UICollectionView中的圖像布局

[英]Layout of Images in UICollectionView

我試圖在背景為書架的UICollectionView中布局雜志封面的集合。 我希望它的每個架子上有2個雜志,其余的當向下滾動時可以看到。 這是我的代碼:

-(void)viewDidLoad {

      UINib *cellNib = [UINib nibWithNibName:@"NibCell" bundle:nil];

    [self.collectionView registerNib:cellNib forCellWithReuseIdentifier:@"cvCell"];
    self.collectionView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"shelves.png"]];
}
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
    return 1;
    NSLog(@"1");
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
       return [_allEntries count];
    NSLog(@"2");
}

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {


     RSSEntry *entry = [_allEntries objectAtIndex:indexPath.row];


    static NSString *cellIdentifier = @"cvCell";

    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];

    UIImageView *titleLabel = (UIImageView *)[cell viewWithTag:100];
     UILabel *titleLabel2 = (UILabel *)[cell viewWithTag:200];

           NSString *thearticleImage = entry.articleImage;
               [titleLabel setImageWithURL:[NSURL URLWithString:entry.articleImage] placeholderImage:[UIImage imageNamed:@"icon@2x.png"]];


    //    [titleLabel2 setText:entry.articleTitle];






    return cell;
}

我正在使用XIB創建collectionView單元。

當只有2個問題時,它看起來不錯,但是隨着越來越多的問題被添加並且您不得不開始滾動,它們變得相當成功:

在此處輸入圖片說明在此處輸入圖片說明在此處輸入圖片說明

您對UICollectionViewCell的計算帶有單元格之間的填充可能是錯誤的。 您可以使用圖像大小播放,也可以通過編程設置單元格大小:

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout  *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{    
    return CGSizeMake(192.f, 192.f);
}

您也可以在Interface Builder中使用填充。

您還可以通過編程方式執行此操作:

UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
[flowLayout setItemSize:CGSizeMake(100, 200)];
[flowLayout setMinimumInteritemSpacing:10];
[flowLayout setMinimumLineSpacing:10];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM