我似乎遇到了iOS 7中UISearchbar在两种情况下消失的问题。首先控制器非常简单,它有一个包含滚动视图的笔尖,其中包含uisearch栏和一些内容。 ui搜索栏位于滚动视图的顶部。因此,当我滚动滚动视图以使uisearchbar更长时间可见时,我退出并重新控制控制器,uisearch栏会更长时间可见。单击该区域会再次显示该区域。当我快速双击它时,uisearchbar也消失了。这个控制器运行良好是iOS 6这些问题只发生在我正在为ios 7构建
修改
调查双击问题导致uisearchbar消失。看起来快速双击时的uisearch栏在显示它时从视图层次结构中移除了uisearchbar,但是当它被解除时从不读回来。所以我可以通过
来解决这个问题- (void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller
{
// workaround for bug in ios 7 were quickly double tapping uisearchbar (e.g it appears and get dismissed quickly)
// does not re add the uisearch bar to the correct view.
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
UIView *parentView = [self.scrollView.subviews objectAtIndex:0];
[parentView addSubview:self.searchDisplayController.searchBar];
}
return;
}
答案 0 :(得分:0)
你尝试过做一些UI刷新吗? 像:
- (void)viewWillAppear:(BOOL)animated{
[self.scrollView setNeedsLayout];
}