我正在开发一个应用程序,主视图包含一个MapView和一个TableView,类似于Foursquare-App的界面。现在我遇到的问题是,当我点击应用程序的搜索栏时,搜索窗口会在整个屏幕上打开 - 但我只想让它在TableView上打开。 你们有没有想过如何改变SearchBar的行为,以便它只覆盖其“自己的”tableView而不是地图视图?
这是基本描述问题的两个图像:
//没有搜索的视图。搜索应该出现在表格视图上。
//但它不会覆盖整个地图。
//短编辑:地图实际上是一个MapBox地图,不应该改变主题上的任何内容。
答案 0 :(得分:0)
这是一个非常有趣的问题......我从未尝试过这样的事情,但我认为可能的方法是:
使用searchDisplayController创建一个视图控制器,我将其称为SearchViewController
SearchViewController *searchVC = [[SearchViewController alloc] init]
并在包含地图的视图控制器上
[self addChildViewController:searchVC];
// assuming an Y offset of 200 pixel, but you can get the mapView height ... it's better
searchVC.view.frame = CGRectMake(0.0f, 200.0f, self.view.frame.size.width, self.view.frame.size.height-200);
[self.view addSubview:searchVC.view];
if ([searchVC respondsToSelector:@selector(didMoveToParentViewController:)]) {
[searchVC didMoveToParentViewController:self];
}
这可能不会完美,但可能是一个起点...我说过我从未尝试过,让我知道它是否有效
答案 1 :(得分:0)
您在我认为的视图中添加搜索栏
您需要在表格视图的HeaderView上添加搜索栏
我认为这将是有效的。