【问题标题】:UISearchBar height reverting to custom view's heightUISearchBar 高度恢复为自定义视图的高度
【发布时间】:2014-01-20 17:28:03
【问题描述】:

我在表格视图控制器上有一个自定义视图标题,其中我有几个标签和一个 UISearchBar。这个问题是当我取消搜索显示控制器时,UISearchBar 动画回到它的原点,但完成后它的高度更改为自定义视图的高度,如下所示:

有没有办法在没有 AutoLayout 的情况下防止这种情况发生(项目正在使用支柱和弹簧)?或者有没有一种方法可以覆盖从显示控制器出来的动画?

我已将一个快速示例项目上传到 github:https://github.com/3arrett/searchbarheight

【问题讨论】:

    标签: ios ios7 uisearchbar uisearchbardisplaycontrol


    【解决方案1】:

    UISearchBar 会在动画结束后放置在顶部容器视图的中心,所以我得到的解决方案是放置两个 UIView,一个用于 UISearchBar,另一个用于标签,并且包含 UISearchBar 的 UIView 的高度应该是与 UISearchBar 高度相同,例如 44。

    看起来像这个 -

    【讨论】:

    • 我的理解是在tableHeader 中添加一个搜索栏,在tableFooter 中添加一个视图/标签,以使所有内容都高于tableView。我已经更新了 git 上的项目来尝试这个,但它仍然无法正常工作。
    • 不是这样。在您所做的原始项目中,您在一个视图中添加了搜索栏和标签,但现在您可以添加两个视图,一个用于搜索栏,一个用于标签,一个包含搜索栏,高度为 44 就这样。
    • 类似于@zeanstoi 的答案,其中有一个只包含搜索栏的视图。我在视觉上看到的问题是动画完成到我期望它去的地方,但是在完成后searchBar 的框架被设置为tableHeader 视图,而不是@987654329 的直接superview @.
    • 我已经更新了。查看情节提要时,TableViewCell 上方和下方的两个UIViews 根本无法定位,并且不允许您添加更多兄弟视图。如果你运行它,然后输入搜索,然后取消你会看到我正在谈论的动画。
    • 是的,你是对的。我没有想出这样做的好方法。我试图将标签移动到节标题,并检查这个github.com/hellomaya/searchbarheight,但恐怕这不是你想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-18
    • 2014-08-10
    • 1970-01-01
    • 2011-05-03
    相关资源
    最近更新 更多