Ограничения Snapkit ячейки CollectionView не работают при применении смещения

У меня есть следующие ограничения, примененные к моей ячейке через SnapKit, и они работают нормально.

    self.imageView.snp.makeConstraints { make in
      make.leading.top.trailing.equalToSuperview()
      make.bottom.equalTo(self.nameLabel.snp.top)
      if let width = self.imageView.image?.size.width {
          make.height.equalTo(width)
      }
    }

    self.nameLabel.snp.makeConstraints { make in
      make.leading.trailing.equalToSuperview()
      make.top.equalTo(self.imageView.snp.bottom)
      make.bottom.equalTo(self.priceLabel.snp.top)
    }

    self.priceLabel.snp.makeConstraints { make in
      make.top.equalTo(self.nameLabel.snp.bottom)
      make.leading.trailing.bottom.equalToSuperview()
    }

но когда я пытаюсь добавить пробел между imageView и nameLabel, я получаю ошибки

    self.productImageView.snp.makeConstraints { make in
      make.leading.top.trailing.equalToSuperview()
      make.bottom.equalTo(self.productNameLabel.snp.top).inset(-8) // change here
      if let width = self.productImageView.image?.size.width {
          make.height.equalTo(width)
      }
    }

    self.productNameLabel.snp.makeConstraints { make in
      make.leading.trailing.equalToSuperview()
      make.top.equalTo(self.productImageView.snp.bottom).offset(8) // change here
      make.bottom.equalTo(self.productPriceLabel.snp.top)
    }

    self.productPriceLabel.snp.makeConstraints { make in
      make.top.equalTo(self.productNameLabel.snp.bottom)
      make.leading.trailing.bottom.equalToSuperview()
    }

Чего я не понимаю, так это того, что если я передвину минус в ограничениях на остальные 8, тогда ошибки исчезнут, но представления теперь перекрываются. Я чувствую, что им не хватает чего-то основного, но не знаю, что.

Вот на что я надеюсь:

введите здесь описание изображения


person Wazza    schedule 23.03.2021    source источник
comment
Вам не нужно дублировать ограничение, я думаю, что удалить эту строку будет нормально: make.bottom.equalTo(self.productNameLabel.snp.top).inset(-8) // изменить здесь   -  person goat_herd    schedule 24.03.2021
comment
Я пробовал это и получаю аналогичные проблемы, когда использование вставки или смещения работает, но сближает представления, когда я использую отрицательное число, я получаю ошибки ограничения   -  person Wazza    schedule 24.03.2021
comment
какая ошибка, и каков размер вашей ячейки, размер ячейки автоматический?   -  person goat_herd    schedule 25.03.2021


Ответы (1)


Так что это не имело никакого отношения к самой ячейке, а к размеру collectionView, содержащего ячейки.

person Wazza    schedule 26.03.2021