将 json 数据存储在表格视图的交替单元格中

Posted

技术标签:

【中文标题】将 json 数据存储在表格视图的交替单元格中【英文标题】:Store json data in alternating cells in table view 【发布时间】:2015-12-28 06:55:40 【问题描述】:

我正在尝试将来自 JSON 的数据存储在表格视图中。 但我想要表格视图的备用单元格中的数据。我希望安排为一个空单元格和一个带有数据模式的单元格。

【问题讨论】:

数据存储还是显示?如果您可以分享为什么要交替显示数据,那就太好了。 在您的 cellForRowAtIndexPath 方法中,检查 indexPath 是否为奇数。如果是,请使用您的 JSON 数据填充您的单元格。如果不是,请留空 您是否在跳过的单元格中显示其他内容,或者您​​只是将它们用于视觉目的? @NicolasMiari 我希望这些单元格为空以用于视觉目的。我希望 UI 看起来像分离的单元格。我会将高度较小的备用单元格保留为空白。 那么,也许您应该将多余的空间合并到单元格的可视布局中,并保持行和数据源数组对象之间正常的一对一关系。混合 PresentationContent 并不是一个好的设计,只会让你的代码在未来变得不那么可读。 【参考方案1】:

UITableVIew 中有一个cellForRowAtIndexPath 方法。在该方法中,您可以检查单元格是奇数还是偶数单元格。

如何检查单元格是奇数还是偶数:在cellForRowAtIndexPath 方法中,您拥有具有“行”和“节”属性的变量“索引路径”。该“行”变量可用于检查它是偶数还是奇数。示例:

if (indexpath.row %2 == 0) 

   //Add data to cell


else 

   //Leave empty


【讨论】:

Leranerios 您可能想提一下,您的条件正在检查甚至 indexPath 行。由于 OP 想要奇数单元格,他将不得不添加 else 条件或检查 indexPath.row%2!=0 检查编辑。顺便感谢您的建议。 :) 好人!您的答案仍然需要格式化(我确实建议进行编辑)。但现在它是微不足道的,所以我将它留给你。 是的,先生.. 我会的。 :) numberOfRowsForIndexPath 末尾返回什么?还有那些字典的结构是什么?编辑您的问题以适应这些变化并提供相关数据【参考方案2】:

当您收到数据时,您可以根据需要将此确切模式存储在一个数组中 然后假设模式就像有一个数组,其中第 0 个位置包含 title_0,第 1 个位置包含 nil,第 2 个位置包含 title_2。 收到 JSON 响应后只需填充此数组,现在您需要在 CellForRowAtIndexPath 中使用此数组:

cell.titleLabel.text=[array objectAtIndex:indexPath.row];

【讨论】:

【参考方案3】:

正如@NicolasMiari 建议的那样,在 cmets 中,我在自定义单元格中创建了一个视图,并为其赋予了超级视图的背景颜色。这创造了我一直在寻找的效果,即细胞必须看起来是分开的。

“混合展示和内容不是一个好的设计,只会让你的代码在未来变得不那么可读。”很有帮助。

【讨论】:

以上是关于将 json 数据存储在表格视图的交替单元格中的主要内容,如果未能解决你的问题,请参考以下文章

在表格视图单元格中通过 alamofire 解析 json 数据

点击保存按钮并存储在字典中时获取表格视图单元格中的文本字段?

将表格视图单元格中的数据保存在核心数据中

如何使用 UIDocumentPicker 将 pdf 文件导入表格视图单元格

将数据从两个单独的 Firebase 节点加载到一个表格视图单元格中

将两个单独的Firebase节点中的数据加载到一个表格视图单元格中