使用 indexPath 访问数组内的 UIImage 并创建空的 UIImage 数组元素

Posted

技术标签:

【中文标题】使用 indexPath 访问数组内的 UIImage 并创建空的 UIImage 数组元素【英文标题】:Accessing UIImage inside Array with indexPath & Creating Empty UIImage Array Element 【发布时间】:2016-04-20 23:00:26 【问题描述】:

我有一组 UIImages。我想用 3 个空的空数组元素(UIImage)创建它

var newImages = [UIImage]()

第一个问题:我怎样才能得到这样的结果?

let newImages = [emptyUIImage,emptyUIImage,emptyUIImage]

或者有没有办法为 UIImage 数组存储空数组元素,就像我这样存储的那样,为 NSURL 数组存储空 NSURL?

if data.count != 3 
    let emptyURL = NSURL(string: "")
    data.append(emptyURL!)

【问题讨论】:

【参考方案1】:

您可以创建具有固定数量元素的任何类型的数组,然后使用array[i] = value 设置数组中ith 索引的值

//instead of passing 10 you could pass, for example, array.count
  var images = [UIImage](count: 10, repeatedValue: nil)


images[0] = //someImage
images[3] = //someImage
images[1] = //someImage

或者,您可以使您的数组成为这样的可选 UIImage 数组...

var newImages = [UIImage?]()

然后在有空图像的地方追加 nil ...

newImages.append(nil)

【讨论】:

谢谢,有没有办法让我分配一个 nil 值,它会像 [ , , uiimage] 一样打印?另外,您是否知道如何访问它,就像我在 moveDataItem() 中为 data 所做的那样?如何使self.newImages[fromIndexPath.section].removeAtIndex(fromIndexPath.item) 工作? 更新了解决第一个问题的答案。至于使这项工作,看起来您正在访问一个数组索引,然后在该索引上调用removeAtIndex(_:Int)?如果你做了self.data.removeAtIndex(fromIndexPath.item),它会起作用,假设data是一个数组,fromIndexPath.item是一个Int 非常感谢问题的第一部分!我该如何处理第二部分?有没有办法在为我的 UIImage 数组重新排序数组元素时实现相同的过程? 你的意思是不重新排序数组元素吗?或者你的意思是你说的那样?您可能想提出另一个问题 这个函数帮助我完成的是,当我通过拖动视图对 collectionViewCells 重新排序时,这个函数可以帮助我跟踪数组中的重新排列。因此,在每次运行此函数中的所有内容后,如果我将 print(self.data) 放在函数的末尾,它会打印数组的新顺序。所以我认为我需要对 UIImages 数组做同样的事情。根据您的回答,我创建了具有 3 个空元素的 UIImage 数组。如果用户上传图像,UIImage 数组会根据索引填充。但是,如果单元格重新排列...

以上是关于使用 indexPath 访问数组内的 UIImage 并创建空的 UIImage 数组元素的主要内容,如果未能解决你的问题,请参考以下文章

ScrollTo indexPath 在 Collection View Cell 内的 Collection View (Nested CollectionView)

如何将 indexPath 数组拆分为单独的 indexPath 数组,每个数组的 indexPath 具有相同的 indexPath.section

Swift indexPath数组计算

使用 Newtonsoft 访问对象内的数组

可靠地使用 UICollectionView indexPath 访问字典键?

如何使用 Swift 动态访问数组中的项目