0

我正在我的应用程序的集合视图中实现 MDChips,但遇到了一个我无法解决的问题。

当我将 selectedImageView 添加到我的芯片并在我的集合视图中选择芯片时,图像按预期显示,但标题由于图像的幻影而移位。

我尝试过使用内在内容和 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
}

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

4

2 回答 2

0

我无法得到,你的代码有什么问题,但我可以向你建议如果有什么可行的,那很好。

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

让我知道您是否仍然面临问题。

于 2019-11-19T11:08:04.213 回答
0

我终于设法实现了它。这有点hacky,但只要它有效......并且缺乏另一种解决方案......适合我!

我添加了每次选择单元格时要执行的代码。

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

每次取消选择单元格时都会执行此代码。

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

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

当您取消选择视图时,图像将消失,因此您将填充恢复为零。

于 2019-11-20T13:58:50.587 回答