0

我们有一行 139x127 的图像,在我们的集合视图单元格中显示有边框。我们尝试了 UIViewContentModeScaleAspectFill (和 Fit),但它仍然显示边框。

代码如下: // uicollectionviewcell

(id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
    // Initialization code
    self = [super initWithFrame:frame];
    if (self) {

        // Initialization code
        NSArray *arrayOfViews = [[NSBundle mainBundle] loadNibNamed:@"ProfilePhotoCell" owner:self options:nil];

        if ([arrayOfViews count] < 1) {
            return nil;
        }

        if (![[arrayOfViews objectAtIndex:0] isKindOfClass:[UICollectionViewCell class]]) {
            return nil;
        }

        self = [arrayOfViews objectAtIndex:0];

    }

    [self.imageView setContentMode:UIViewContentModeScaleAspectFill];

    return self;

}
return self;
}

 // uicollectionview/viewcontroller
// 1
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
// 2
CGSize retval = CGSizeMake(100, 66);
return retval;
}

  // 3
 - (UIEdgeInsets)collectionView:
 (UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
return UIEdgeInsetsMake(20, 0, 0, 0);
}

下面是截图:!http://m.mirror.co/collection.png

4

2 回答 2

0

出于调试目的,我发现LLDB通过暂停应用程序并运行它来使用它是无价的......

po [[UIWindow keyWindow] _autolayoutTrace]

这将为您提供指向每个视图对象的指针。那我就跑...

po [0xabcd123 constraints]

...查看是否在运行时添加了您不知道的任何自动约束。此外,您可以获取单元格和视图的帧大小,并查看它们是否匹配。您可能需要以编程方式删除自动约束并应用将视图固定到单元格的新约束。我在使视图单元格在视图之间“翻转”时遇到了一些问题。

不要忘记关闭 init 或 IB 中的自动约束...

[self.imageview setTranslatesAutoresizingMaskIntoConstraints:NO];

祝你好运!

于 2012-12-15T19:02:33.123 回答
0

UICollectionView 的 collectionViewLayout 属性是怎么回事?我猜 UICollectionView 正在填充它正在显示的单元格。

于 2012-12-14T23:44:46.163 回答