根据indexPath.row更改变量

时间:2019-05-23 16:03:28

标签: swift xcode collectionview

我有四个不同的变量,称为display0, display1, display2, display3。然后,我有了一个collectionView,其中包含一个可重复使用的单元格,其中包含textLabel。将有四个单元格,我要将它们的textLabels设置为display1 through to display4。我可以按照cell.textLabel.text = display\(indexPath.row)的方式做些什么吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

否,您无法在运行时通过串联推断变量名称,这意味着如果您声明了类似变量

var display0 = "5"

那么就做

let str = "display\(indexPath.row)"

str将具有字符串display0,但在变量display0中将没有实际内容,因为两者都是不相关的情况

任何一个:

1-将它们添加到模型数组中

var arr = ["contentvar1","contentvar2","contentvar3","contentvar4"]

cell.textLabel.text = arr[indexPath.row]

2-使用开关盒

switch indexPath.row  {
 case 0 :
      cell.textLabel.text = display0
  ---
}

选项1比2更有效率

答案 1 :(得分:0)

创建变量列表:

let displays = ["data0","data1","data2","data3"]

您可以简单地分配变量或更改它们:

displays[1] = "newData1"

然后在您的cellForRow中将其命名为:

cell.textLabel.text = displays[indexPath.row]