繁体   English   中英

swift 3中如何使用UIImage数组为零?

[英]How to use UIImage in swift 3 the array comes nil?

我有一组png图像。

iconeImage = [UIImage(named:"ion-home")!,UIImage(named:"ms-medkit")!,UIImage(named:"ion-edit")!,UIImage(named:"ion-clipboard")!,UIImage(named:"ion-clipboard")!,UIImage(named:"ion-waterdrop")!,UIImage(named:"ion-calendar")!]

我有一个用于表视图的函数,该函数使用此数组元素设置图像

这是代码

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "MenuTableViewCell") as! MenuTableViewCell
        cell.imgIcon.image = iconeImage[indexPath.row]
        return cell
    }

但是它给我的错误是iconeImage具有nil值。 所以你能给我建议解决方案。 我是Swift 3的初学者

这是屏幕截图 忙碌的猫 ![两个木偶] [1]

建议您不要存储图像名称,而不是将所有图像保存在内存中:

let iconImages = ["ion-home", "ms-medkit", "ion-edit", "ion-clipboard", "ion-waterdrop", "ion-calendar"]

并在需要时直接预加载每个图像。 因为它是小图标,所以不会影响性能。 代码也看起来更干净。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "MenuTableViewCell") as! MenuTableViewCell
    cell.imgIcon.image = UIImage(named: iconImages[indexPath.row])
    return cell
}

仔细检查是否所有资产都已添加到您的项目中。 如果它们在那里,则应显示图像。

尝试避免在代码中使用隐式展开的可选(!)。 零值将使应用程序崩溃。 在您的示例中,imageView.image是可选的,因此您可以为其设置UIImage(named:“ imageName”)。

另外,您可以尝试清理构建文件夹,清理项目并重新安装该应用程序。 有时在Xcode中复制资源失败。

请尝试以下格式

  let img = iconeImage[indexPath.row]
    if let imgData = img {
        cell.imgView.image = UIImage(data:imgData)
    }

您可以改为存储图像名称:

let iconImageNames = ["ion-home","ms-medkit", ... , "ion-calendar")]

以后使用您的方法访问它们:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "MenuTableViewCell") as! MenuTableViewCell
    let name = iconeImage[indexPath.row] ?? yourDefaultImageName
    cell.imgIcon.image = UIImage(named: name)
    return cell
}

举个例子

我不知道到底是什么问题。

但是当我搜索了stackoverflow时。 我在某处读到Assets.xcassets有问题

然后我得到了错误的确切

然后借助该答案解决错误。

并希望我解决了错误。

同时问题出在资产文件夹中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM