【问题标题】:uiImageView showing borders between images in UICollectionViewCelluiImageView 在 UICollectionViewCell 中显示图像之间的边框
【发布时间】:2012-12-14 22:43:37
【问题描述】:

我们有一行 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

【问题讨论】:

  • 你想要什么...带边框或不带边框的图片
  • 图像之间没有间距/填充
  • UIEdgeInsetsMake(0, 0, 0, 0);
  • 不,我之前尝试过,但没有成功。奇怪的是,改变增加顶部、底部、左侧和右侧的值确实会增加它们之间的间距,即使我使用了负值,但仍然无法删除图像之间的间距。
  • 将 sizeForItemAtIndexPath 中的值调整为宽度为 320.0/3.0

标签: iphone objective-c uiimageview uicollectionview


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    po [[UIWindow keyWindow] _autolayoutTrace]
    

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

    po [0xabcd123 constraints]
    

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

    别忘了在你的 init 或 IB 中关闭自动约束...

    [self.imageview setTranslatesAutoresizingMaskIntoConstraints:NO];
    

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-13
      • 2023-03-08
      • 1970-01-01
      • 2019-04-11
      • 1970-01-01
      相关资源
      最近更新 更多