事件后UISearchBar消失

时间:2014-08-04 02:41:33

标签: ios7 uisearchbar uisearchdisplaycontroller

我的视图中有一个UISearchBar包含在最顶层单元格上方的UITableView中。一切正常,直到我将一个新的视图控制器推到导航堆栈上。一旦我弹出新VC并返回到原始视图控制器,搜索栏就不会显示在表的顶部。相反,我的导航栏和表格视图的顶行之间有一个空白区域。但是,如果我点击这个空白区域,那么搜索栏会像正常一样打开,当我再次点击取消时,一切都很顺利。

我认为UISearchBar的视图设置为完全白色,但我不明白为什么。我最初将UISearchBar添加到故事板中,作为UISearchDisplayController的一部分。将VC从其他控制器展开后,如何将搜索栏变为白色,而不是将其推入导航堆栈?

1 个答案:

答案 0 :(得分:1)

我有同样的问题。我不认为它与搜索栏的颜色有关,而是与搜索栏的子视图的布局有关。经过多次试验和错误后,我想出了这个解决方案:

@interface MySearchBar : UISearchBar
@end

@implementation MySearchBar

-(void) layoutSubviews
{
    [super layoutSubviews];
    if (self.subviews.count == 1)
    {
        UIView *subview = [self.subviews objectAtIndex:0];
        subview.frame = self.bounds;
    }
}

@end

使用MySearchBar而不是UISearchBar