如何阻止搜索栏在我的UITableView上打开而不是在整个视图中打开?

时间:2013-05-24 08:19:20

标签: ios objective-c cocoa

我正在开发一个应用程序,主视图包含一个MapView和一个TableView,类似于Foursquare-App的界面。现在我遇到的问题是,当我点击应用程序的搜索栏时,搜索窗口会在整个屏幕上打开 - 但我只想让它在TableView上打开。 你们有没有想过如何改变SearchBar的行为,以便它只覆盖其“自己的”tableView而不是地图视图?

这是基本描述问题的两个图像:

http://i.stack.imgur.com/a7vGU.png //没有搜索的视图。搜索应该出现在表格视图上。

http://i.stack.imgur.com/uYTpE.png //但它不会覆盖整个地图。

//短编辑:地图实际上是一个MapBox地图,不应该改变主题上的任何内容。

2 个答案:

答案 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上添加搜索栏

我认为这将是有效的。