Ios7 iOS 7 UISearchDisplayController搜索栏消失
我最近在更新我的应用程序时遇到了这个问题。当我开始在搜索栏中键入时,搜索栏消失,我只能看到表视图。我仍然可以继续键入,并且表视图得到更新,但我看不到搜索栏。 同样的设置在iOS<7上也可以正常工作 知道为什么会这样吗Ios7 iOS 7 UISearchDisplayController搜索栏消失,ios7,uisearchdisplaycontroller,iso,Ios7,Uisearchdisplaycontroller,Iso,我最近在更新我的应用程序时遇到了这个问题。当我开始在搜索栏中键入时,搜索栏消失,我只能看到表视图。我仍然可以继续键入,并且表视图得到更新,但我看不到搜索栏。 同样的设置在iOS
尝试在上调整searchResultsTableView框架的大小
-(void)searchDisplayController:(UISearchDisplayController *)controller
didShowSearchResultsTableView:(UITableView *)tableView
有点晚了,但我最近遇到了同样的问题。我希望搜索栏在整个搜索过程中都可见并处于活动状态,因此覆盖它的暗淡视图是一个大问题。对我来说,唯一有效的方法就是更改暗显视图的框架(显然这与更改searchResultsTableView的框架不同)。 我通过以下代码成功地做到了这一点:
-(void)setCorrectFrames
{
// Here we set the frame to avoid overlay
CGRect searchDisplayerFrame = self.searchDisplayController.searchResultsTableView.superview.frame;
searchDisplayerFrame.origin.y = CGRectGetMaxY(self.searchDisplayController.searchBar.frame);
searchDisplayerFrame.size.height -= searchDisplayerFrame.origin.y;
self.searchDisplayController.searchResultsTableView.superview.frame = searchDisplayerFrame;
}
-(void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller
{
[self setCorrectFrames];
}
-(void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller
{
[self setCorrectFrames];
}
谢谢,蒂希。
如果我使用这段代码,搜索栏将返回
祝你玩得开心,我希望它能帮助你。我几乎精神崩溃,因为我无法在我的新应用程序项目中显示搜索栏。搜索栏没有显示在导航控制器中,尽管我已执行了以下操作: 1) 将“搜索栏和搜索显示控制器”组件添加到我的故事板视图控制器(在视图下方的栏中,而不是视图中) 2) 在viewDidLoad中,调用“self.searchDisplayController.displaysSearchBarInNavigationBar=YES 唯一发生的事情是我得到了一个标签(!),上面写着搜索 经过长时间的努力,我创建了一个新项目,并开始一件一件地重新创建不工作的项目。我从故事板开始…现在搜索栏显示了。然后我添加了一些库,比如谷歌分析、外部组件等,直到这个项目与不起作用的项目完全相同……现在问题又出现了!没有搜索栏 当我开始删除东西时,我最终发现它是一个类别代码文件(我没有提到,但在项目中),名为UISearchBar+SearchField,它定义了一个只读属性 .h文件如下所示:
@interface UISearchBar (SearchField2)
@property (nonatomic, readonly) UITextField *searchField;
@end
.m文件如下所示
#import "UISearchBar+SearchField.h"
@implementation UISearchBar (SearchField)
- (UITextField *)searchField {
NSUInteger subViewCount = [self.subviews count];
for (int i = 0; i < subViewCount; i++) {
if ([[self.subviews objectAtIndex:i] isKindOfClass:[UITextField class]]) {
return [self.subviews objectAtIndex:i];
}
}
return nil;
}
@end
#导入“UISearchBar+SearchField.h”
@实现UISearchBar(搜索字段)
-(UITextField*)搜索字段{
NSU整数子视图计数=[self.subviews计数];
对于(int i=0;i
当我删除或重命名此属性时,一切都开始工作
这是非常(!)特定于我异常奇怪的问题,但可能对某人有所帮助。实际上,我将搜索栏放在表视图中,然后隐藏导航控制器。self.searchDisplayController.searchResultsTableView.backgroundColor=[UIColor clearColor];可以帮助您查看搜索栏是否隐藏在后面searchDisplayController@Tihi它工作得很好,但当我点击搜索栏时,tableview的第一行隐藏在搜索栏后面。。
#import "UISearchBar+SearchField.h"
@implementation UISearchBar (SearchField)
- (UITextField *)searchField {
NSUInteger subViewCount = [self.subviews count];
for (int i = 0; i < subViewCount; i++) {
if ([[self.subviews objectAtIndex:i] isKindOfClass:[UITextField class]]) {
return [self.subviews objectAtIndex:i];
}
}
return nil;
}
@end