MDCChip 选定的图像正在取代我的标题标签

MDCChip selected image is displacing my title label

我在我的应用程序的 collection 视图中实施 MDCChips,但我遇到了一个我无法解决的问题。

当我将 selectedImageView 添加到我的 chip 并且我 select 我的 collection 视图中的 chip 时,图像按预期显示,但标题因以下原因而移位图像的出现。

我试过使用内在内容和 UIEdgeInsets,但我似乎找不到解决方法。

有什么办法可以避免这种情况发生吗?我希望图像在显示时不会取代芯片视图中的任何其他内容。

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "identifierChips", for: indexPath) as! MDCChipCollectionViewCell
    let chipView = cell.chipView
    chipView.selectedImageView.image = UIImage(named: "tickIcon")

    return cell
}

任何提示或帮助将不胜感激!

我无法理解,您的代码中有什么问题,但我可以向您建议,如果有什么可行的,那很好。

  1. 如果图片有标题,请检查您的 imageView 的内容模式。
  2. 如果您使用 Lable 作为标题,那么调试您的 UI 并检查您的约束(如果您使用约束)

如果您仍然遇到问题,请告诉我。

我终于成功了。它有点 hacky,但只要它有效...并且缺少其他解决方案...适合我!

我添加了这段代码,每次单元格 selected 时都会执行。

chipView.imagePadding = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: -padding)

每次删除单元格时都会执行此代码selected。

chipView.imagePadding = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)

所以基本上填充值是图像的宽度,当你 select 图像将出现的单元格但是你用图像的总宽度删除图像的右填充,所以它不会'影响标签。

当您删除select 视图时,图像将消失,因此您将填充恢复为零。