UISearchDisplayController跳转到左侧

时间:2014-12-11 17:01:49

标签: ios objective-c xcode uitableview

我在某些地方看到了这个问题,但没有人帮助过我。现在一直在寻找,所以我在这里问一下。

我对UISearchDisplayController有疑问。 tableView这个正在制作并不是整个屏幕,只有右侧:

The tableView

当我点击顶部的搜索栏时,它跳转到:

The tapped searchBar

当我实际搜索时,这就是我得到的:

The result

我已经尝试了几种解决方案'像:

 - (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController
 *)controller {
     controller.searchBar.frame = CGRectMake(300, 20, 744, 44); 
 }

 - (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView {
     tableView.frame = CGRectMake(0, 0, self.carListDropbox.frame.size.width,
 self.carListDropbox.frame.size.height); 
 }

 - (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView {
     tableView.frame = self.carListDropbox.frame; 
 }

他们似乎并没有为所有人提供帮助。有没有其他方法可以将searchBar(和UISearchDisplayController)锁定到视图中?

THX!

1 个答案:

答案 0 :(得分:0)

我试图让搜索控制器以这种方式工作,并且在搜索结果tableview没有处于正确位置且搜索栏也不在正确位置时遇到了很多问题。似乎苹果的默认设计将这些动画设置为顶部,并没有真正为您提供太多信息或控制如何完成。

虽然我不确定是否有办法将searchBar锁定到视图中(并且始终使searchResultsTableView正确定位),因为可能有一种方法可以做到这一点,我不会这样做。我知道,但我认为这不值得。

相反,我建议您制作自己的搜索栏和searchresultstableview,您可以随时控制,动画和定位,无论何时您想要,都不会头痛。使您的searchresultstableview隐藏,直到他们进入文本字段或开始输入,然后根据需要显示它。如果您希望它看起来一样,那么您必须使用UIBezierPath绘制自己的搜索图标和搜索栏,或者您可以添加自己的图像。