Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UISearchBar动画隐藏按钮_Iphone_Animation_Uisearchbar_Uisearchdisplaycontroller - Fatal编程技术网

Iphone UISearchBar动画隐藏按钮

Iphone UISearchBar动画隐藏按钮,iphone,animation,uisearchbar,uisearchdisplaycontroller,Iphone,Animation,Uisearchbar,Uisearchdisplaycontroller,我目前有一个UISearchBar(连接到UISearchDisplayController),但我减小了搜索栏的宽度,以便在未选择搜索栏时在其右侧显示自定义按钮。该按钮用于访问其他视图 但是,当我选择搜索栏,然后按“取消”(甚至执行搜索)并返回到正常视图(搜索栏应显示“我的自定义”按钮)时,搜索栏将显示动画并占用按钮的所有空间,而不会显示。基本上,当我只想让搜索栏占据屏幕的一部分时,它占据了屏幕的全部宽度 有没有办法阻止搜索栏在整个屏幕宽度上设置动画 我是这样定义搜索栏的CGRect的: se

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

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

有没有办法阻止搜索栏在整个屏幕宽度上设置动画

我是这样定义搜索栏的CGRect的:

self = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 250.0f, 45.0f)]
这可能会有所帮助。听起来确实需要对UISearchBar进行子类化,以阻止其正常绘制


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

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


Peter,你链接的帖子中的问题略有不同,我已经能够根据我的需要调整搜索栏的大小,我需要的是阻止它返回到全宽。感谢您的链接。

知道在这里使用哪个搜索栏代理方法是关键。有太多可能的方法了,伊莫。编辑:实际上,在
searchBarCancelButonClicked
中设置框架对我不起作用。我只好用
searchDisplayControllerDendSearch
方法来设置框架,这很烦人,因为它可以将屏幕的全宽设置为动画,然后再将动画设置回我想要的大小。我的帖子有点老了,可能一年后会有所改变。我无法检查我的代码是否仍然有效。希望你能尽快找到解决办法@livingtech我有你的问题。你找到解决办法了吗?我正试图找到任何使用UISearchDisplayController的方法,但我想我必须自己实现它的功能,因为有一个明显的错误。是的,我想我也这么做了。(实现了自定义解决方案)祝您好运!