gpt4 book ai didi

xcode - 是否可以制作 "Alphabetical scroll bar - alike"进行搜索?

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

目前,我有一个像 facebook 的新提要这样的 View ,其中按时间顺序列出用户的帖子。现在在右侧,我想放置字母滚动条,当用户滚动到任何字符时,他们可以搜索名称以该字符开头的用户的帖子,但这可能吗?

根据我的理解,如果我可以在用户滚动到每个字符时捕获事件并将该字符传输到服务器上的 API 以查询名称以该名称开头的数据库并将其发回以显示在设备上,则可以解决这个问题。

任何人都可以给我一些提示吗!

最佳答案

您想要做的是一种非常不寻常的用户界面,但如果您真的想要这样做,您可以执行以下操作(您可以找到教程 here):
在您的 tableViewController ,创建一个索引数组,例如您希望在 tableView 旁边显示的字母字符数组,例如:

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
NSARRAY *characters = @[@" ", "A", @"B", @"C", @"D", @"E", @"F", @"G", @"H", @"I", @"J", @"K", @"L", @"M", @"N", @"O", @"P", @"Q", @"R", @"S", @"T", @"U", @"V", @"W", @"X", @"Y", @"Z"];
    return characters;
}

根据 docs : „一个字符串数组,用作表格 View 中部分的标题,并出现在表格 View 右侧的索引列表中。表格 View 必须是普通样式( UITableViewStylePlain )。例如,对于按字母顺序排列的列表,您可以返回一个包含字符串“A”到“Z”的数组。“

如何将数据分类到 tableView 的各个部分完全取决于您。 .在您的情况下,您希望将所有时间排序的数据放在一个部分中,可能没有特殊的标题。因此您的阵列 characters以标题开头 @" "在索引 0 处,您将所有按时间排序的条目放在第 0 部分。
然后,实现以下方法:
 - (NSInteger)tableView:(UITableView *)tableView 
sectionForSectionIndexTitle:(NSString *)title
atIndex:(NSInteger)tappedIndex {
self.savedTappedIndex = tappedIndex;
return 0;
}

这个方法可能有点困惑。它执行以下操作: 当用户点击 tableView 一侧的索引时( @" " … @"Z" ) 数组中的某个字符 characters ,这个字符在数组中的位置(它的索引)被输入到这个方法中。您可以将其存储在属性中。如果像示例中一样返回 0,则表的第 0 部分将按原样重新显示。
如果您对属性 savedTappedIndex 进行键值观察( KVO ) ,您将在表格重新显示时收到通知。然后,您可以通过以下方式阅读点击的字符
NSString *tappedCharacter = characters[self.savedTappedIndex];  

使用此字符,您可以向服务器询问提要,这些提要由名称以该字符开头的用户创建。
然后数据可以显示在 tableView 中。 ,再次在第 0 部分。
当然,您应该不再在 tableView 旁边显示索引。 .

再一次,这种行为可能会让用户非常困惑,因为它非常不寻常。

最后说明:

您不应该将上述 hack 用于实际实现,但您可以使用它来测试您的用户界面,您可能会发现用户体验并不好,因为索引的行为与往常不同。

关于xcode - 是否可以制作 "Alphabetical scroll bar - alike"进行搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34615086/

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