我似乎遇到了一个问题,即 iOS 7 中的 UISearchbar 在两种情况下消失了。首先, Controller 相当简单,它有一个 Nib ,其中包含一个 ScrollView ,其中包含 uisearch 栏和一些内容。 ui 搜索栏位于 ScrollView 的顶部。因此,当我滚动 ScrollView 以便 uisearchbar 更长可见并且我退出并重新访问 Controller 时,uisearch 栏更长可见。单击该区域会使它再次出现。当我快速双击它时,uisearchbar 也会消失。这个 Controller 在 iOS 6 上运行良好,这些问题只是在我为 iOS 7 构建时才会出现
编辑
调查导致 uisearchbar 消失的双击问题。似乎快速双击时的 uisearch 栏在显示它时从 View 层次结构中删除了 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;
}
最佳答案
您是否尝试过刷新 UI? 喜欢:
- (void)viewWillAppear:(BOOL)animated{
[self.scrollView setNeedsLayout];
}
关于ios - UISearchbar 在 UIScrollView 中消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20888414/