【问题标题】:UITableView with Hierarchical Categories -Swift iOS具有分层类别的 UITableView -Swift iOS
【发布时间】:2017-01-24 23:24:48
【问题描述】:

我有 3 个类别:

  1. 运动鞋
  2. 裤子
  3. 衬衫

每个类别可以有许多不同的品牌,例如。

1.运动鞋>耐克、阿迪达斯、锐步

2.裤子>李维斯,李维斯

3.衬衫 > Ralph Lauren, Abercrombie

我的用户从一个类别中挑选,然后他们可以添加任意数量的名牌。在他们选择了类别并放置了他们想要的任何品牌名称后,我需要 2 个 tableViews(或 collectionViews)。第一个 tableView 应该显示他们选择的类别,第二个 tableview 应该显示他们在该类别中命名的品牌。

我的问题是按类别排序。我知道如何显示他们选择的所有名称,但不知道导致名称的类别。

我遇到的问题是,如果用户选择衬衫类别两次,显示它的 tableView 会显示衬衫类别两次,而它应该只显示一次。

我从 Apple 找到了 this,但它没有显示 Swift 中的示例。

Swift 中任何类似的 StackOverflow q/a 都可以作为答案。

【问题讨论】:

  • 所以在他们更新类别后,您是说 Shirt 显示了两次,这意味着您的数组包含类别,包含 Shirt 两次,对吗?如果是这样,请使用 NSOrderedSet 删除重复项。希望对你有帮助
  • @Janmenjaya 我以前从未使用过它,但我会尝试并告诉你。谢谢!
  • 我已经更新了答案,检查一下看看NSOrderedSet的使用,去除重复。
  • 你能展示你的代码吗?

标签: ios swift uitableview uicollectionview datamodel


【解决方案1】:

如果您的数组在类别中包含重复项。 我希望它必须包含重复项,因为您可以在表格视图中看到重复项,因此请使用 NSOrderedSet 删除重复项。

这里是演示使用NSOrderedSet的演示代码

Objective C 版本:

NSArray *category = [NSArray arrayWithObjects:@"Sneakers", @"Pants", @"Shirts",@"Pants", @"Shirts", nil];

NSLog(@"Before using ordered set : %@", category.description);

// iOS 5.0 and later
NSArray * newCategoryArray = [[NSOrderedSet orderedSetWithArray:category] array];

NSLog(@"After using ordered set  : %@", newCategoryArray.description);

斯威夫特版本:

let category = ["Sneakers", "Pants", "Shirts","Pants", "Shirts"];
NSLog("Before using ordered set : %@", category.description);

let newCategoryArray = NSOrderedSet(array: category).array;

NSLog("After using ordered set  : %@", newCategoryArray.description);

输出:

Before using ordered set : (
    Sneakers,
    Pants,
    Shirts,
    Pants,
    Shirts
)

After using ordered set  : (
    Sneakers,
    Pants,
    Shirts
)

编码愉快...

【讨论】:

  • 我在swift中找不到等效的方法
  • @LanceSamaria,我添加了 Swift 等效代码。检查答案并告诉我。
  • @thanks 我会尝试一下。我即将发布我正在寻找的更详细的解释。我不确定您的方法是否适用,但我会尝试。这是链接stackoverflow.com/questions/39663089/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-09-25
  • 2020-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多