Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何在天气应用程序中创建类似的搜索栏?_Iphone_Objective C_Uisearchbar - Fatal编程技术网

Iphone 如何在天气应用程序中创建类似的搜索栏?

Iphone 如何在天气应用程序中创建类似的搜索栏?,iphone,objective-c,uisearchbar,Iphone,Objective C,Uisearchbar,在我的应用程序中,当你添加一个新城市时,我希望有一个像天气应用程序中那样的搜索栏。 我还想用谷歌地理编码搜索城市/地方,并解析我已经知道的结果——如何做到完美。 对于这一点,我有两个问题 首先,我如何创建一个类似天气应用程序或斯托克斯应用程序的搜索栏?普通的搜索栏没有我可以使用的主题。他们是怎么做到的 第二,我怎样才能变成那种即时/现场搜索的感觉? 我的意思是,当你开始打字时,它开始搜索你输入的内容,就像你输入的每一封信一样,它会进行新的搜索,并在你停止打字后的一段时间内显示数据。 我不能对输入

在我的应用程序中,当你添加一个新城市时,我希望有一个像天气应用程序中那样的搜索栏。 我还想用谷歌地理编码搜索城市/地方,并解析我已经知道的结果——如何做到完美。 对于这一点,我有两个问题

首先,我如何创建一个类似天气应用程序或斯托克斯应用程序的搜索栏?普通的搜索栏没有我可以使用的主题。他们是怎么做到的

第二,我怎样才能变成那种即时/现场搜索的感觉? 我的意思是,当你开始打字时,它开始搜索你输入的内容,就像你输入的每一封信一样,它会进行新的搜索,并在你停止打字后的一段时间内显示数据。
我不能对输入的每个字母都进行查询,我想这会造成太多的流量,而且会花费太长的时间。

创建基于窗口的项目,删除视图,删除UISearchBar,在搜索栏顶部添加视图,使其成为矩形,这样就有了一个带有主题的搜索栏。然后,您必须实现UISearchBarDelegate协议,以便在每次编辑时,都可以在先前预装(或直接从internet)的词典中查找城市名称,如果存在匹配项,则执行表插入。您可以尝试匹配确切的名称,或使用距离

也许你只想在一段时间后得到真实的结果,那么就这么做吧

[NSObject cancelPreviousPerformRequestsWithTarget:self];
[self performSelector:@selector(fillMyTableWithResults) withObject:nil afterDelay:1.0];
在代理的文本DIDCHANGE方法中。

您已经看过了。看看这个

编辑
缓存以前的结果是可以考虑的,但是如果不发送请求,则最终会显示过时数据。虽然我还没有真正尝试过,但我认为框架是基于web作为数据源的思想构建的。它也有一个等价物。你可以看看它是否有用。

我猜你指的是搜索栏顶部的标签,对吗?我想我必须以编程方式这样做,因为IB不允许我在搜索栏顶部放置标签。sry我是iphone开发的新手!我肯定想通过google geocoding加载数据,所以我的问题是我想我无法对每个更改的字母进行查询?如果您添加UIView、UISearchBar作为子节点(将其移动到其下方,直到其成为子节点)以及标签作为UIView的子节点,则可以在不进行任何编程的情况下添加UILabel或UIImageView。换句话说,标签不是子标签或酒吧的一部分,即使看起来是这样。使用我上面发布的代码,您可以选择延迟、1.0或其他任何选项,这样它只会在用户停止写入时进行搜索。是的,谢谢。这个例子帮助我实现了我的搜索栏,但在我的两个问题上并没有真正帮助我:(编辑我的答案,因为我之前的一个答案感觉不相关。虽然不完全在那里,但我希望它能帮助你找到正确的方向。