gpt4 book ai didi

ios - cellForRowAtIndexPath 中有很多 Switch 案例

转载 作者:行者123 更新时间:2023-11-29 01:08:39 25 4
gpt4 key购买 nike

我有一个关于使用硬编码数据设置 TableView 的问题。有时开发人员会遇到这样的情况:您需要显示不是从 DATA MODEL 层接收到的数据,而是存储为硬编码信息的数据。

我的意思例如,当您build设置屏幕时,可以有一些 UITableViewCell,例如:

CustomTableViewCellName - 配置数据:占位符名称/姓氏、图标。

CustomTableViewCellPhone - 配置数据:电话占位符、图标。

CustomTableViewCellLogout - 配置数据:注销/注销文本、图标。

假设我有 3 个 TableView 部分,每个部分包含 5 个不同的单元格,我在上面作为不同情况的示例进行了描述。

如果我们将在

中实现所有这些单元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
switch (indexPath.section)
..... A LOT OF CASES THAT CONFIGURE EACH CUSTOM CELLS

如您所见,没有数据模型,只有占位符和图标图像将作为标签、 TextView 、 ImageView 等的默认数据存储在 UITableViewCell 中。我不会在这里说模型,例如模型用户存储用户名、姓氏等。我的意思是我需要在某个地方存储一些默认数据,也许在字典中。实际上占位符只是一个占位符,虽然它有一个 TEXT 而 TEXT 是一个数据 =)

在这种情况下,我们有用于配置 View 默认状态的数据和将用作模型 USER 的数据。

我担心的是我会有一个大 Switch 和非常庞大的 View Controller 。

我想创建一些方法,这些方法将在其中使用 indexPath.row 来表示带有开关的部分:

 - (UITableViewCell *)cellsForSection1:(NSIndexPath *)ip
- (UITableViewCell *)cellsForSection2:(NSIndexPath *)ip
- (UITableViewCell *)cellsForSection2:(NSIndexPath *)ip

并将这些方法移至 Interactor,它将为我返回一个单元格。我知道 Interactor 应该只准备数据并将其通过 Presenter 推送到 View。

也许我想多了一个问题。我只是不想在 VC 中进行大切换 =) 我知道没有正确的解决方案。但也许有人面对过它。

再一次,在我的例子中,数据是我想在某处配置的默认单元格,以防止 View Controller 过载。是的,也许单元格是数据看起来很疯狂,但是看看包含 1000 行配置代码的 ViewController cellForRowAtIndexPath 也很疯狂 =)

最佳答案

如果您的数据是静态的,那么我更愿意使用枚举而不是 Switch case。使用 Enums 并在其正文中为您的每个部分提供标签,然后在 cellForRowAtIndexpath 中枚举此 Enum 并相应地显示您的数据。

关于ios - cellForRowAtIndexPath 中有很多 Switch 案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36025093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com