向 UITableView 添加带标题的动态标签 header

Adding dynamic tags with title to UITableView header

我想在用户 select 行时将带有标题的动态标签添加到 table 视图 header 中。 就像如果用户 select 从 table 视图中看到 5 个不同的城市,那么我想将那些 selected 城市作为不同的标签添加到 table 视图 header 中,以便用户可以通过水平滚动或其他最适合的方式查看 selections。 我怎样才能实现这样的功能?

任何帮助将不胜感激。

谢谢

这可以通过将 Collection 视图添加到 Table 视图的 header 中来实现。

  1. 创建一个数组来存储选定的行值。
  2. 使用选定的数组数据重新加载或更新 collection 视图。

StoryBoard 中的 UITableView 正上方有一个 UIScrollView。 当您进入 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 方法调用以下方法时,

- (void)addLabel:(NSString *)cityName {

[array addObject:cityName];

UILabel * label = [[UILabel alloc] init];
label.frame = CGRectMake(array.count*44, 0, 44, 44);
label.text = cityName;
[sview addSubview:label];
[sview setContentSize:CGSizeMake(array.count*44, 44)];

}

  1. 这里的数组是 对象,其中包含所选城市的列表
  2. UIScrollView 是一个滚动视图,添加在情节提要中的 UITableView 上方。
  3. 每次当您通过传递选定的 cityName 调用 addLabel 方法时,初始化一个具有所需属性的新 UILabel 并将其添加到 UIScrollView。这里 UILabel 的 'x' 原点根据添加到数组的元素数量而变化。
  4. 最后将 contentSize 设置为 UIScrollView ,以便滚动视图滚动到那里。

如果您需要更多自定义来在滚动视图中展示标签,您可以使用您想要的任何自定义设置 UIView,然后将 UILabel 添加到 UIView。最后将 UIView 添加到 UIScrollView.