加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xcode – 是否可以为搜索制作“按字母顺序滚动条 – 相似”?

发布时间:2020-12-14 17:55:26 所属栏目:百科 来源:网络整理
导读:目前我有一个像Facebook的新饲料的视图,其中按时间顺序列出的用户发布.现在在右侧我想放置按字母顺序滚动条,当用户滚动到任何字符时,他们可以搜索名称以该字符开头的用户搜索,是否可以? 根据我的理解,当用户滚动到每个字符并将该字符传输到服务器上的API以
目前我有一个像Facebook的新饲料的视图,其中按时间顺序列出的用户发布.现在在右侧我想放置按字母顺序滚动条,当用户滚动到任何字符时,他们可以搜索名称以该字符开头的用户搜索,是否可以?

根据我的理解,当用户滚动到每个字符并将该字符传输到服务器上的API以查询名称以该字符开头的DB并将其发回到设备上显示时,我可以捕获事件.

请问任何人给我一些提示!

解决方法

你想要做的是一个非常不寻常的用户界面类型,但如果你真的想这样做,你可以做以下(你可以找到一个教程 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:“一个字符串数组,用作表视图中节的标题,并出现在表视图右侧的索引列表中.表视图必须是普通样式(UITableViewStylePlain).例如,对于按字母顺序排列的列表,您可以返回包含字符串“A”到“Z”的数组.“

这完全取决于您,如何将数据排序到tableView的各个部分.在您的情况下,您希望将所有时间排序的数据放在一个部分中,可能没有特殊的标题.因此,您的数组字符以索引0处的标题@“”开头,并且您将所有时间排序的条目放在第0节中.
然后,实现以下方法:

- (NSInteger)tableView:(UITableView *)tableView 
              sectionForSectionIndexTitle:(NSString *)title 
              atIndex:(NSInteger)tappedIndex {
     self.savedTappedIndex = tappedIndex;
     return 0;
 }

这种方法可能有点混乱.它执行以下操作:当用户点击tableView(@“”… @“Z”)侧面的索引时,数组字符中的某个字符,此字符在数组中的位置(其索引)是输入的这个方法.您可以将其存储在房产中.如果您在示例中返回0,则表的第0部分将按原样重新显示.
如果您对属性savedTappedIndex执行键值观察(KVO),则会在重新显示表时收到通知.然后,您可以阅读点击的字符

NSString *tappedCharacter = characters[self.savedTappedIndex];

使用此字符,您可以向服务器询问是否由名称以此字符开头的用户创建的供稿.
然后,数据可以显示在tableView中,同样在第0节中.
当然,您应该不再在tableView的一侧显示索引.

再一次,这种行为可能会让用户感到非常困惑,因为这很不寻常.

最后的说明:

您不应该使用上面的hack来实现真正的实现,但是您可以使用它来测试您的用户界面,并且您可能会看到用户体验不好,因为索引的行为与往常不同.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读