Uitableview UISearchBar包含在tableViewHeader中

Uitableview UISearchBar包含在tableViewHeader中,uitableview,iphone-sdk-3.0,uisearchbar,Uitableview,Iphone Sdk 3.0,Uisearchbar,我已在UITableView.tableHeaderView中放置了UISearchBar。但是,它通过将可查看的顶部放置到第一节标题来覆盖搜索栏。我只能在向下拖动tableView时看到搜索栏。它是半覆盖的,然后无法选择,因为释放tableView滚动将橡皮筋将其拉回到视图之外。请帮忙 以下内容放置在我的UITableViewController viewDidLoad方法中: UISearchBar *theSearchBar = [[UISearchBar alloc] init]; th

我已在UITableView.tableHeaderView中放置了UISearchBar。但是,它通过将可查看的顶部放置到第一节标题来覆盖搜索栏。我只能在向下拖动tableView时看到搜索栏。它是半覆盖的,然后无法选择,因为释放tableView滚动将橡皮筋将其拉回到视图之外。请帮忙

以下内容放置在我的UITableViewController viewDidLoad方法中:

UISearchBar *theSearchBar = [[UISearchBar alloc] init];
theSearchBar.delegate = self;
self.searchBar = theSearchBar;
[theSearchBar release];

self.tableView.tableHeaderView = self.searchBar;

结果是以下截图:

我认为tableHeaderView不是放置搜索栏的最佳位置。 我通常使用UISearchDisplayController:

searchController = [[UISearchDisplayController alloc]
                     initWithSearchBar:theSearchBar contentsController:self];
searchController.delegate = self;
searchController.searchResultsDataSource = self;
searchController.searchResultsDelegate = self;
这非常简单,并且给出了一些搜索函数,您必须在委托/数据源(在本例中是控制器)中实现它们

我通常从nib执行此操作,但我认为您只需将其分配给viewcontroller即可:

self.searchDisplayController=searchController;
如果它没有显示视图,您应该直接将视图添加到tableView中


您可以查看参考资料,或者询问您是否有问题。

我认为tableHeaderView不是放置搜索栏的最佳位置。 我通常使用UISearchDisplayController:

searchController = [[UISearchDisplayController alloc]
                     initWithSearchBar:theSearchBar contentsController:self];
searchController.delegate = self;
searchController.searchResultsDataSource = self;
searchController.searchResultsDelegate = self;
这非常简单,并且给出了一些搜索函数,您必须在委托/数据源(在本例中是控制器)中实现它们

我通常从nib执行此操作,但我认为您只需将其分配给viewcontroller即可:

self.searchDisplayController=searchController;
如果它没有显示视图,您应该直接将视图添加到tableView中


您可以查看参考资料,或者询问您是否有问题。

事实证明,这是一个大小问题。我发现在设置中放置了以下代码:

[theSearchBar sizeToFit];
让一切看起来都很完美


由于UISearchDisplayController使用已建立的UISearchBar,因此无法消除该问题。

事实证明,这是一个大小调整问题。我发现在设置中放置了以下代码:

[theSearchBar sizeToFit];
让一切看起来都很完美


由于UISearchDisplayController使用的是已建立的UISearchBar,因此无法消除此问题。

非常感谢。甚至没有意识到有一个控制器。我现在就去试试。至少从3.0开始,searchDisplayController是一个只读属性,不能用这种方式设置。非常感谢。甚至没有意识到有一个控制器。我现在就去试试。至少从3.0开始,searchDisplayController是一个只读属性,不能用这种方式设置。