将 json 数据存储在表格视图的交替单元格中
Posted
技术标签:
【中文标题】将 json 数据存储在表格视图的交替单元格中【英文标题】:Store json data in alternating cells in table view 【发布时间】:2015-12-28 06:55:40 【问题描述】:我正在尝试将来自 JSON 的数据存储在表格视图中。 但我想要表格视图的备用单元格中的数据。我希望安排为一个空单元格和一个带有数据模式的单元格。
【问题讨论】:
数据存储还是显示?如果您可以分享为什么要交替显示数据,那就太好了。 在您的cellForRowAtIndexPath
方法中,检查 indexPath 是否为奇数。如果是,请使用您的 JSON 数据填充您的单元格。如果不是,请留空
您是否在跳过的单元格中显示其他内容,或者您只是将它们用于视觉目的?
@NicolasMiari 我希望这些单元格为空以用于视觉目的。我希望 UI 看起来像分离的单元格。我会将高度较小的备用单元格保留为空白。
那么,也许您应该将多余的空间合并到单元格的可视布局中,并保持行和数据源数组对象之间正常的一对一关系。混合 Presentation 和 Content 并不是一个好的设计,只会让你的代码在未来变得不那么可读。
【参考方案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 文件导入表格视图单元格