5

ここに画像の説明を入力

このタイプの UICuollectionView が必要です。各セルには 1 つの画像とラベルがあります。セルの高さと幅は、そのラベルのテキストによって異なります。

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

   CollectionViewCell *cell = [cv dequeueReusableCellWithReuseIdentifier:@"kCellID"  forIndexPath:indexPath];
if(cell == nil){
    cell = [[[NSBundle mainBundle] loadNibNamed:@"CollectionViewCell" owner:self options:nil] lastObject];
}
cell.backgroundColor = [UIColor redColor];
cell.image.image = [UIImage imageNamed:[self.arrPhotos objectAtIndex:indexPath.row]];
[cell.image setFrame:CGRectMake(cell.image.frame.origin.x, cell.image.frame.origin.y, cell.image.frame.size.width,100)];
float f = [self getHeightCalculateForTheText:[arrText objectAtIndex:indexPath.row]  andwidth:96];
[cell.label setFrame:CGRectMake(0,100,96, f)];
cell.label.text = [arrText objectAtIndex:indexPath.row];
[cell setFrame:CGRectMake(cell.frame.origin.x, cell.frame.origin.y, cell.frame.size.width, cell.frame.size.width+f-20+10)];
return cell;
}

- (CGSize) blockSizeForItemAtIndexPath:(NSIndexPath *)indexPath {
if(indexPath.row >= self.arrPhotos.count)
    NSLog(@"Asking for index paths of non-existant cells!! %d from %d cells", indexPath.row, self.arrPhotos.count);
float f = [self getHeightCalculateForTheText:[arrText objectAtIndex:indexPath.row]  andwidth:96];

if (f > 0 && f< 30)
    return CGSizeMake(1, 2);
else if (f > 30 && f< 60)
    return CGSizeMake(1, 3);
else if (f > 60 && f< 90)
    return CGSizeMake(1, 4);
else if (f > 90 && f< 120)
    return CGSizeMake(1, 5);
else if (f > 120 && f< 150)
    return CGSizeMake(1, 6);
else if(f > 150 && f< 180)
    return CGSizeMake(1, 7);

return CGSizeMake(1,1);
}

しかし、私の細胞は圧迫されています。ここに画像の説明を入力

何が問題なのか教えてもらえますか?

4

1 に答える 1

0

この行の必要なwidth場所に入力した可能性があります。height

[cell setFrame:CGRectMake(cell.frame.origin.x, 
                          cell.frame.origin.y, 
                          cell.frame.size.width, 
                          cell.frame.size.width+f-20+10)];
于 2013-04-19T07:47:14.293 に答える