iphone - Twitter 如何在 iPhone 应用程序中实现新的自动完成功能?

标签 iphone ios twitter

Twitter 在最新的 iPhone 应用程序中提供了一种很棒的新方式来输入“@”和“#”。

http://blog.twitter.com/2011/03/twitter-for-iphone-ipad-even-better.html

当您键入“#”或“@”,然后键入字符时,它会立即开始在下表中自动完成。他们是怎么做到的?感觉很原生,但真的是这样吗?

如果是原生的,他们是怎么做到的?带有事件 UITableView 的 UITextView?它非常快速和流畅,所以我猜他们用趋势#'s 和你的@'s 加载手机并且速度很快,因为数据是本地的(如果不存在,则只需输入)。

但我想知道是否有一种方法可以使用异步调用对网络服务器上的远程数据产生这种影响。

关于如何执行此操作/开始的任何想法?

最佳答案

如果您所说的“ native ”是指构建到 SDK 中,那么我不得不让您失望,这不是内置 SDK 功能(与 UISearchController/UISearchBar 类有类似的东西,但这不是 Twitter 的功能杠杆)。

但是,这并不意味着您不能自己构建它。我相信这会很简单。您所要做的就是在用户每次将文本输入 UITextView 时进行监视(这可以使用 UITextView 委托(delegate)方法轻松完成)。您检查所有文本,如果用户输入“@”或“#”或任何其他您想要查看的符号,您将在 TextView 下方(或任何您想要的位置)创建/显示一个 UITableView ).

至于 TableView 的数据源,它必须基于您通过搜索收集的信息。当 Twitter 向您显示趋势标签列表时,我认为这是他们在您同步提要时将其拉下的内容,然后缓存在某个地方。如果您使用的是网络服务器,您也可以这样做。当用户开始输入特定文本时,您可以在服务器上进行搜索。如果您异步执行网络请求,则可以在 TableView 中显示一个 UIActivityIndi​​cator,直到您从服务器获得响应。如果用户在服务器“回复”您之前输入了更多文本,只需取消旧的服务器请求,然后开始一个新请求即可。

我自己还没有实现过这样的东西,我不知道它在现实生活中的表现如何,但如果我想实现类似的东西,我会这样做追求。它可能不完全适合您的情况,但希望它能给您一些启发:)

关于iphone - Twitter 如何在 iPhone 应用程序中实现新的自动完成功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5554799/

相关文章:

iOS 折线图突出显示颜色

c# - 不能在 c# 中使用 xml 中的地理标记

ios - UITableView 中动态数组的PrepareForSegue

iphone - iOS 6 错误 : supportedInterfaceOrientations not called when nav controller used as window root

ios - 获取 Swift 编译器错误

iphone - 如何知道哪个 xib 文件使用了图像?

ios - CocoaPods 不工作

iPhone内存释放问题

iphone - ios 推特 OATH 集成不起作用

html - Adblocker 隐藏了一个不是广告的 CSS 类