ios - 如何使用字典中的键值对为表格 View 单元格提供标题?

标签 ios swift xcode uitableview dictionary

我目前正在尝试完成我的第一个应用程序的收尾工作。作为我正在学习的类(class)的一部分,通过 Xcode 快速编写,我有一个出现在表格 View 中的图像列表,我想以编程方式更改文件的名称,使其不显示 IMG_xxxxx.jpg .我创建了一个字典来将每张照片与所需的名称相关联,但是我无法弄清楚如何使表格 View 显示一个单元格标题,该单元格标题是所述字典中的键的值,基于哪个文件被加载到任何给定的单元格中。

//This is the dictionary 
let imageTitles = ["IMG_1085.JPG" : "Num Num Num",
                   "IMG_1251.JPG" : "Star of the Show",
                   "IMG_1643.JPG" : "Ante Up",
                   "IMG_1630.jpg" : "Someone called my name?",
                   "IMG_1340.JPG" : "Ahhhhhhhhh",
                   "IMG_1595.jpg" : "Focus",
                   "IMG_1689.JPG" : "He Likes Me",
                   "IMG_1676.jpg" : "Warm and Cozy",
                   "IMG_1688.JPG" : "It's Like Looking Into a Mirror...",
                   ]

这些是加载单元名称的位。一个被注释掉了(这是教练教的“官方”代码,为了学习,我试图更进一步),另一个是我自己完成这项任务的尝试(我没有保存每一个尝试-我只是在不成功时用新的东西重写。)当我决定添加此功能时,另一条评论更像是给自己的一个注释。我想我有可能在错误的地方尝试这样做,但我认为情况并非如此。抛出的错误是说当需要 int 时我不能有 string:string 引用,这是有道理的(从逻辑上讲,我假设 .row 将是一个 int 值,但我不知道如何发表声明要求一个字符串:字符串值,我相信这可以解决我的问题)。
 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "Picture", for: indexPath)
    //cell.textLabel?.text = pictures[indexPath.row]
    cell.textLabel?.text = imageTitles[indexPath.row]
    //this is where I need to make the reference of the dictonary

    return cell
}

最后,如果我只是不知道如何编写需要 string:string 的参数是对的,有没有什么办法可以让缺乏经验的人弄清楚这一点?我试着在这样的网站上寻找现有的线程,但没有任何运气。

提前感谢您的任何帮助!

最佳答案

您需要一个数组作为数据源,简单的例子是一个文件名数组

var pictures = ["IMG_1085.JPG", "IMG_1251.JPG", "IMG_1643.JPG", "IMG_1630.jpg", "IMG_1340.JPG", "IMG_1595.jpg", "IMG_1689.JPG", "IMG_1676.jpg", "IMG_1688.JPG"]

cellForRow获取索引路径的文件名并将其映射到标题
 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "Picture", for: indexPath)
    let fileName = pictures[indexPath.row]
    cell.textLabel?.text = imageTitles[fileName] ?? "N/A"
    return cell
}

更好的解决方案是将自定义结构作为模型,其中包括文件名和人类可读的描述。

关于ios - 如何使用字典中的键值对为表格 View 单元格提供标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60231660/

相关文章:

php - 如何将变量从 iOS 发送到 php 文件

ios - 类型 'UIPageViewController.OptionsKey'(又名 'NSString')没有成员 'interPageSpacing'

iphone - LazyTableImages 与 SDWebImages

ios - 无法通过 CoreSimulator 启动 IBCocoaTouchImageCatalogTool XCode 9.4 上的问题

xcode - 如何在 Xcode 4 的运行脚本构建阶段中使用 sudo?

iphone - 我的Xcode-编译错误只是显示红色的感叹号

ios - Xcode 6 中的未知类型名称错误

ios - 是否有使用或不使用 UIWebView 接受 Paypal 付款的解决方案?

ios - 如何在 iOS 中制作自定义按钮?

ios - BranchIO Universal Link iOS 数据仅在长按并选择打开方式时有效