从数组中的文本变体分配图像

时间:2017-02-21 03:30:57

标签: arrays swift

我根据标签名称分配图像。例如,如果标签上写着" Car"然后分配的图像是" CarImage"我使用了这段代码:

  if cell.nameLabel.text == “Car” {
  if let image = UIImage(named: “CarImage”)
  { cell.imageView?.image = image 
  }
  }

我希望能够为同一图像设置许多标签变体。我正在尝试使用数组:

if cell.nameLabel.text == [“Car”, “Automobile”, “Auto”, "Vehicle",] {
if let image = UIImage(named: “Car”)
{ cell.imageView?.image = image 
  }
  }

但是我已经用几种不同的方式尝试了这种方法,但它无法正常工作。我已经阅读了几个不同的答案,但似乎没有一个干净的方法可以做到这一点。感谢您的任何意见!

1 个答案:

答案 0 :(得分:0)

let array = ["Car", "Automobile", "Auto", "Vehicle"]
if array.contains(where: {cell.nameLabel.text != nil && $0 == cell.nameLabel.text!}) {
   cell.imageView.image = UIImage(named: "CarImage")
}

array.contains(where: {cell.nameLabel.text != nil && $0 == cell.nameLabel.text!})将检查["Car", "Automobile", "Auto", "Vehicle"]数组中的任何字符串是否包含cell.nameLabel.text中的字符串。如果是这样,请在单元格上设置图像。

你可以想象并做这样的事情:

cell.imageView.image = array
      .first(where: {cell.nameLabel.text != nil && $0 == cell.nameLabel.text!})
      .flatMap({_ in UIImage(named: "CarImage")})