Twitter在最新的iPhone应用程序中输入“@”和“#”有一种很棒的新方法。
http://blog.twitter.com/2011/03/twitter-for-iphone-ipad-even-better.html
当您键入“#”或“@”然后键入字符时,它会立即开始在下表中自动填充。他们是怎么做到的?它感觉很原生,但是它呢?
如果是原生的,他们是怎么做到的? UITextView带有活动的UITableView?它非常快速和流畅,所以我猜他们用热门#和你的@来加载手机,而且它很快,因为数据是本地的(如果它不在那里就会打字)。
但是我想知道是否有办法通过异步调用使用远程网络服务器上的远程数据来实现这种影响。
关于如何做到/开始的任何想法?
答案 0 :(得分:1)
如果用'native'表示构建到SDK中,那么我不得不让你失望,这不是内置的SDK功能(类似于UISearchController / UISearchBar类,但这不是Twitter的内容杠杆)。
然而,这并不意味着您无法自己构建它。我相信这很简单。每次用户将文本输入到UITextView时,您所要做的就是监视(这可以使用UITextView委托方法轻松完成)。您检查所有文本,如果用户输入“@”或“#”或您要注意的任何其他符号,则在文本视图下方(或任何您想要的位置)创建/显示UITableView )。
对于表视图的数据源,它必须基于您通过搜索收集的信息。当Twitter向您显示趋势标签列表等时,我认为当您同步您的Feed时,它们会被拉下来,然后缓存到某处。如果您使用的是Web服务器,则可以执行相同的操作。当用户开始输入特定文本时,您可以在服务器上进行搜索。如果异步执行网络请求,则可以在表视图中显示UIActivityIndicator,直到从服务器获得响应。如果用户在服务器“回复”之前输入了更多文本,只需取消旧的服务器请求,然后开始新的请求。
我自己没有实现过这样的东西,而且我不知道它在现实生活中会有多大的表现,但是如果我要实现类似的东西,那么这就是我的意思。追求。它可能不适合你的情况,但希望它会给你一些灵感:)