繁体   English   中英

UICollectionView 图像约束问题

[英]UICollectionView Image Constraints Problem

我快被这个问题搞疯了! 我有一个以编程方式与图像重用的 UICollectionView。 唯一的问题是图像的大小,我的图像应该和自定义单元格一样大。 我似乎无法弄清楚为什么我的图像更小! 我哪里出错了?

这是当前子视图的代码:

        
        addSubview(centerImageView)
        centerImageView.centerXAnchor.constraint(equalTo: centerXAnchor).isActive = false
        centerImageView.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = false
        centerImageView.heightAnchor.constraint(equalToConstant: 100).isActive = true
        centerImageView.widthAnchor.constraint(equalToConstant: 100).isActive = true
        

添加这样的约束并像这样设置 img.contentMode = .scaleAspectFill:

contentView.addSubview(centerImageView)
centerImageView.topAnchor.constraint(equalTo: contentView.topAnchor).isActive = true
centerImageView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor).isActive = true
centerImageView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor).isActive = true
centerImageView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor).isActive = true

在此处输入图片说明

  1. 我认为主要问题是:

     centerImageView.centerXAnchor.constraint(equalTo: centerXAnchor).isActive = false centerImageView.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = false

    请将其更改为true 在您的代码中,您明确设置了图像视图的大小 (100x100)。 所以在这种情况下,您不必使用约束。

    您可以使用类似centerImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))框架创建图像centerImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 100, height: 100)) 并删除img.translatesAutoresizingMaskIntoConstraints = false

  2. UIView 的 contentMode 默认是UIView.ContentMode.scaleToFill 所以目前没问题。

  3. 您应该将subviews添加到UICollectionViewCellcontentView中。 self.contentView.addSubview(centerImageView)

这是一个问题,您设置图像固定宽度和高度,绿色是您的单元格框架大小。

因此,根据您的要求,满足需要设置充满单元格框架大小的图像框架,因此设置图像约束顶部、底部、前导和尾随

centerImageView.topAnchor.constraint(equalTo: 0).isActive = true
centerImageView.leadingAnchor.constraint(equalTo: 0).isActive = true
centerImageView.trailingAnchor.constraint(equalTo: 0).isActive = true
centerImageView.bottomAnchor.constraint(equalTo: 0).isActive = true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM