【问题标题】:UISearchBar animation hiding buttonUISearchBar 动画隐藏按钮
【发布时间】:2010-06-09 13:26:22
【问题描述】:

我目前有一个 UISearchBar(附加到 UISearchDisplayController),但我减小了搜索栏的宽度,以便在未选择搜索栏时在其右侧显示一个自定义按钮。该按钮用于访问其他视图。

但是,当我选择搜索栏然后按取消(甚至执行搜索)并返回到正常视图时,搜索栏应该使用我的自定义按钮显示,搜索栏会动画并占用所有按钮的空间并且不显示。本质上,当我只希望它占据屏幕的一部分时,搜索栏占据了屏幕的所有宽度。

有什么方法可以防止搜索栏动画到整个屏幕宽度?

这就是我定义搜索栏的 CGRect 的方式:

self = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 250.0f, 45.0f)]

【问题讨论】:

    标签: iphone animation uisearchbar uisearchdisplaycontroller


    【解决方案1】:

    最后,这个问题的答案比我想象的要简单。由于某种原因,iPhone SDK 填满了搜索栏框架的宽度,所以每次用户按下取消按钮并触发 searchBarCancelButtonClicked() 事件时,我都必须不断地将其重置为我想要的大小。一个简单的 [searchBar setFrame: frame] 解决了它。 :)

    彼得,您链接的帖子中的问题略有不同,我已经能够将搜索栏调整为我想要的大小,我需要阻止它回到全宽。不过感谢您的链接。

    【讨论】:

    • 了解此处使用哪种搜索栏委托方法是关键。恕我直言,有太多可能的方法。编辑:实际上,在searchBarCancelButonClicked 中设置框架对我不起作用。我已经让自己在 searchDisplayControllerDidEndSearch 方法中设置框架,这很烦人,因为它会动画到屏幕的整个宽度,然后再动画回我想要的大小。
    • 好吧,我的帖子有点老了,也许一年后发生了一些变化。我无法检查我的代码是否仍然有效。希望您能尽快找到解决方案!
    • @livingtech 我有你的确切问题。你有没有找到解决办法?我试图找到使用 UISearchDisplayController 的任何方法,但我认为我将不得不自己实现它的功能,只是因为一个明显的错误。
    • 是的,我想我也是这样做的。 (实施了自定义解决方案。)祝你好运!
    【解决方案2】:

    这个 SO post 可能会有所帮助。听起来您确实需要继承 UISearchBar 以阻止它进行正常绘图。

    更新我想在 UINavigationBar 中使用 UISearchBar,并让它在触摸时调整大小以填充栏 - 就像 Safari 应用程序中的行为一样。我能做到这一点的唯一方法是直接使用 UISearchBar 。您的问题略有不同,但您可以尝试通过仅使用搜索栏来获得所需的 UI 行为;然后连接逻辑以进行之后的搜索;即不要依赖 UISearchDisplayController?

    【讨论】:

      猜你喜欢
      • 2012-01-19
      • 1970-01-01
      • 2013-09-18
      • 2014-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-28
      • 1970-01-01
      相关资源
      最近更新 更多