UISearchBar动画隐藏按钮

时间:2010-06-09 13:26:23

标签: iphone animation uisearchbar uisearchdisplaycontroller

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

然而,当我选择搜索栏然后按取消(甚至执行搜索)并返回到普通视图,其中搜索栏应显示我的自定义按钮,搜索栏会动画并占用所有按钮的空间,不显示。基本上,当我只希望它占据屏幕的一部分时,搜索栏会占用屏幕的所有宽度。

有没有办法阻止搜索栏动画到整个屏幕宽度?

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

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

2 个答案:

答案 0 :(得分:3)

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

彼得,你链接的帖子中的问题略有不同,我已经能够将搜索栏调整到我想要的位置,我需要的是阻止它回到全宽。谢谢你的链接。

答案 1 :(得分:1)

此SO post可能有所帮助。听起来你需要继承UISearchBar以阻止它正常绘制。

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