我正在实施基于位置的关键字搜索。如果有人看过Yelp的搜索栏,那就是我想要做的。基本上,一旦点击了搜索栏,我想为关键字提供一个文本字段输入,为位置提供另一个文本字段输入。我将子类化为什么UI元素?我该怎么做呢?
答案 0 :(得分:4)
Yelp的实现看起来是一个带有两个UITextField对象的自定义视图,带有平移和缩放动画,使其看起来从顶部放大。完成动画后,会在层次结构中添加表视图。通过使其中一个文本字段成为第一响应者来调用键盘。
BTW - 一般来说,将UI元素组合在一起优于子类化。答案 1 :(得分:2)
不久前我也做了类似的应用程序 我在我的应用程序中做了什么是我按照这些步骤,(我只是简要说明而不是代码部分):
初看:
viewDidLoad
中以编程方式完成的。UITextFields
一个在另一个之下。我隐藏了这个视图并将其y坐标移动了视图的高度,以便它们变为-(viewHeight)
。功能部分
一旦用户触摸放置在导航栏中的搜索栏,我就将其隐藏,用文本字段取消隐藏视图并移动y坐标直到它们再次变为0。
在搜索栏的委托方法中,- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
我返回NO,在从此方法返回NO之前做了动画部分(在上一步中提到)。
我将第一个文本字段作为第一个响应者,以便键盘自动显示。
现在,当我完成两个文本字段中的数据填充时,我颠倒了动画并将填充到文本字段中的数据放到搜索栏中。
希望这有帮助。