[英]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
我认为主要问题是:
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
UIView 的 contentMode 默认是UIView.ContentMode.scaleToFill
。 所以目前没问题。
您应该将subviews
添加到UICollectionViewCell
的contentView
中。 像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.