在自定义的UICollectionViewCell中调整xib的大小

4
我有一个自定义的 UICollectionViewCell,它是在.xib文件中布局的。其大小为194 x 200,并且已设置自动布局约束:

one

这是该类的样子。
class DurationDayCollectionViewCell: UICollectionViewCell {

    @IBOutlet weak var banner: UIView!
    @IBOutlet weak var numberOfHours: UILabel!
    @IBOutlet weak var unitHrs: UILabel!
    @IBOutlet weak var dayOfWeek: UILabel!

    override func awakeFromNib() {
        super.awakeFromNib()

    }

但在我的集合视图中,它看起来像这样: two 单元格的大小更小(97 x 100)。有没有办法使nib自动调整到集合视图单元格的大小?
2个回答

2

遇到了完全相同的问题,可以采用以下两种解决方法之一解决:

  1. 在你的Storyboard中,点击Collection View,点击Size Inspector,在“Estimate Size”中设置为“None”。

或者

  1. 在你的自定义单元格类中,添加以下方法:

override func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes {
let preferredLayoutAttributes = layoutAttributes var adjustedFrame = layoutAttributes.frame adjustedFrame.size.height = 180 //根据你的特定情况进行更改 adjustedFrame.size.width = 100 preferredLayoutAttributes.frame = adjustedFrame return preferredLayoutAttributes }

这节省了我超过24小时的压力和焦虑...非常感谢。 - NhlanhlaNkosi

0

在Storyboard中单击your xib并找到右侧的Simulator Metrics,将大小更改为 -> Freeform,然后单击Show size inspector,选择freeform并输入您的widthheight,最后构建就可以正常工作了!

谢谢。


1
我在更新的屏幕截图中没有看到“模拟指标”。 - Liumx31

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接