【问题标题】:iOS - Move UISearchBar programmaticallyiOS - 以编程方式移动 UISearchBar
【发布时间】:2015-01-19 16:57:21
【问题描述】:

我目前在普通 UIViewController 中有一个 UISearchBar。 SearchBar或多或少在UIView的中间,当我点击输入一些文字时,我的tableView与searchBar完全重叠,无法点击清除/取消按钮:我看不到搜索栏了。 当我将我的 searchBar 完全移动到我的视图顶部时,它是完美的。但我用故事板来做。我怎样才能以编程方式做同样的事情?将 SearchBar 移动到视图的顶部。

非常感谢您的帮助

【问题讨论】:

    标签: ios objective-c uisearchbar uisearchdisplaycontroller uisearchcontroller


    【解决方案1】:

    我建议查看UISearchController (iOS 8+)。来自 Apple 文档:

    UISearchController 类定义了一个接口,用于管理 显示与搜索结果一致的搜索栏 控制器的内容。

    可以在 here 找到 Apple 文档。

    如果您坚持手动进行,您可以尝试设置 Auto Layout 约束,如下所示将 SearchBar 始终放置在 TableView 的顶部:

     [self addConstraint:[NSLayoutConstraint constraintWithItem:_searchBar
                                                 attribute:NSLayoutAttributeBottom
                                                 relatedBy:NSLayoutRelationEqual
                                                    toItem:_myTableView
                                                 attribute:NSLayoutAttributeTop
                                                multiplier:1.0
                                                  constant:0.0]];
    

    【讨论】:

    • 我建议您了解 AL。 :) 您至少可以将它用于这一屏幕。如果您不想使用 AL,请查看UISearchController
    【解决方案2】:

    您有 3 个选项:

    1. [self.view insertSubview:yourSearchBar aboveSubview:yourTableView];

    2. [parentView bringSubviewToFront:yourSearchBar];

    3. [self.view insertSubview:yourSearchBar atIndex:0];

    顺便说一句 - 当您使用情节提要创建视图时,视图来回跳转会导致所有问题,因此最好以编程方式进行。

    【讨论】:

    • 您好,感谢您的帮助。但是这 3 个选项都没有将 searchBar 带到 UIView 的顶部...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    相关资源
    最近更新 更多