ios - UISearchbar 在 UIScrollView 中消失

标签 ios objective-c ios7 uisearchbar

我似乎遇到了一个问题,即 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/

相关文章:

objective-c - 在IOS中发出http请求并从返回的json对象中解析特定数据

ios - ScrollView 不能在 iOS7 中使用 AutoLayout

ios - 呈现自定义模态视图时,如何在背景中显示 "fade out"控件的颜色?

ios - Objective-C:如何从 POST 方法返回响应?

iphone - 使用indexPath.row从NSArray填充UITableView

ios - 如何为 iPhone 和 iPad 设置不同的布局 (Swift)

ios - 判断urlsession.shared和Json解析完成的时间

objective-c - 在 iOS 4.2.1 上,strnlen 未在此范围内声明

iphone - 需要限制我的应用程序只在带有 L.E.D 的设备上运行

ios - 如何将日期信息传递给 CVCalendar 进行显示?