在UIScrollView中,UISearchbar消失了

时间:2014-01-02 17:34:52

标签: ios objective-c ios7 uisearchbar

我似乎遇到了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;
}

1 个答案:

答案 0 :(得分:0)

你尝试过做一些UI刷新吗? 像:

- (void)viewWillAppear:(BOOL)animated{ [self.scrollView setNeedsLayout]; }