ios - 仅当 indexPath 对象可用时如何在 tableview 单元格上使用标签

标签 ios swift uitableview

我有一个表格 View ,每个单元格中有两个标签。一个显示数组中的对象,另一个显示之前创建的另一个数组中的相应对象。

presentArray: [item1, item2, item3]
previousArray: [item1, item2, item3, item4]

numberOfRowsInSection 返回 presentArray.count

在cellForRowAt中我需要设置一个label来显示previousArray对应的index。这就是崩溃发生的地方。数组根据其性质可以具有不同的长度。

那么,我如何才能告诉 tableview 单元格显示来自前一个数组的字符串(如果它存在)。

如果数组长度相同,我目前只能在标签中显示字符串,否则我会崩溃,因为 indexPath 超出范围,无论是更长还是更短。

如果索引路径存在,我怎么说 cell.label.text = "array[indexPath.row]"。

最佳答案

在设置标签文本之前,您可以使用 if 条件,如下所示:

if indexPath.row < previousArray.count {
    cell.label.text = array[indexPath.row]
} else {
    cell.label.text = ""
}

此代码检查以确保 tableview 的 indexPath.row 小于数组中的项目数,因此您的代码不会崩溃。

关于ios - 仅当 indexPath 对象可用时如何在 tableview 单元格上使用标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48591902/

相关文章:

ios - 停止键盘关闭以重置 View 的高度

ios - 如何从目标时间中减去当前时间?

swift - 如何从闭包中提取此值以更新 Swift 中的自定义对象?

swift - 如何在 Swift 3 中从 Firebase 中删除特定键

ios - 如何使用swift和ios使firebase sdk中的旧消息过期

ios - 如何在 UIImageView 中设置图像

ios - 推送通知不适用于 testflight 和 xcode 8 beta

iOS (Swift) 等效于以编程方式填充线性布局

iOS 使用 Plist 中的数据填充 UITableView

objective-c - NSDateFormatter 从字符串中返回不正确的日期