0

我正在开发一个主视图由 MapView 和 TableView 组成的应用程序,类似于 Foursquare-App 的界面。现在我遇到的问题是,当我点击应用程序的搜索栏时,搜索窗口会在整个屏幕上打开 - 但我只希望它在 TableView 上打开。你们中有人知道如何更改 SearchBar 的行为,使其仅在其“自己的”tableView 而非地图视图上运行吗?

这是基本描述问题的两张图片:

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

http://i.stack.imgur.com/uYTpE.png// 但它并没有覆盖整个地图。

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

4

2 回答 2

0

这是一个非常有趣的问题......我从未尝试过这样的事情,但我认为可能的方法是:

使用我将调用 SearchViewController 的 searchDisplayController 创建一个视图控制器

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];
}

这可能不会完美,但可以作为一个起点......我说我从未尝试过,如果它有效,请告诉我

于 2013-05-24T09:00:42.067 回答
0

我认为您在视图中添加了搜索栏

您需要在表格视图的 HeaderView 上添加搜索栏

我认为这将是工作..

于 2013-05-24T09:22:04.743 回答