gpt4 book ai didi

iphone - 不显示空的分组单元格表格 View

转载 作者:行者123 更新时间:2023-11-29 04:13:02 25 4
gpt4 key购买 nike

我正在执行与 Contacts.app 中的查看联系人类似的 View ,这意味着我在不同部分(电话)下有多个不需要的字段(第二个工作电话、第二个电子邮件等) 、电子邮件等)。

当某些字段为空时,我不想显示它们,当某个部分下的所有字段为空时,我不想显示该部分。此外,某些单元格会对其执行操作,例如点击电话号码单元格时,它会调用显示的号码。目前,这些操作是在 didSelectRowAtIndexPath 中手动处理的,并根据单元格位置使用基本的 if 语句。

我找不到一个优雅的解决方案来完成这一切...我为每个部分尝试了一系列字典(每个单元格),但事情很快就变得困惑了。另外,由于行的顺序永远不会相同,因此我无法轻松地使用 ifs 根据单元格位置处理 didSelectRowAtIndexPath 方法中的所有操作。

哦,我正在幕后使用核心数据。

有人必须做类似的事情并愿意分享他的想法吗?

谢谢!

我现在用于区分单元格的静态 ifs 设置示例:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

if (indexPath.section == 0)
{
// Custom actions here
}
else if (indexPath.section == 1)
{
// Other actions here
[self showMailComposeWithEmail:cell.textLabel.text];
}
}

另一种方法使用indexPath来区分样式和行为:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (!cell)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}

if (indexPath.section == 0)
{
if (indexPath.row == 0)
{
cell.textLabel.text = self.contact.phone;
}
}
else if (indexPath.section == 1)
{
if (indexPath.row == 0)
{
cell.textLabel.text = self.contact.email;
}
}

return cell;
}

最佳答案

拿一个字典,当您将对象添加到该字典时,请确保其中的数据不为空。将其数据添加到键的字典中,如下所示:

Phones - key 0^0 (it means at 0 section 0 row)
WorkPhone - key 0^1(it means at 0 section 1st row)
Emails - key1^0 (1 section 0th row) and so on...

并在cellForRowAtIndexPath处将此值获取为

[dict valueForKey:[NSString stringWithFormat:@"%d^%d",indexPath.section,indexPath.row]];

希望这是清楚的。

关于iphone - 不显示空的分组单元格表格 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14108544/

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