2015-06-26 165 views
0

我想有一个UISearchbar在我的导航栏 - 正如我在这里所做的:的UISearchBar在导航栏宽度

enter image description here 当搜索栏获得焦点,我会卸下左侧按钮

self.navigationItem.leftBarButtonItems = [] 

,并设法使该UISearchBar得到屏幕的整个宽度(以取消按钮)

searchBar.sizeToFit() 
    searchBar.showsCancelButton = true 

但我UISearchBar太宽,它看起来像在此屏幕:

enter image description here

但是,为什么会这样?我想得到以下结果:

用户单击进入SeachBar,我将淡化在UITableView的结果 - 当用户按下取消按钮时,UITableView淡出,我将添加“Kategorie”左再次按钮。

这是一种如何解决这个问题的方法 - 或者我不能在这里使用sizeToFit()方法吗?

回答

0

将搜索栏的宽度设置为等于屏幕的大小减去“取消”按钮的大小,或尝试在搜索栏和导航控制器的前导空间之间添加约束条件如何。

+0

我不希望那 - 我虽然“sizeToFit()”自动采取容器中的所有可用空间。如果可能的话(因为它是一个通用应用程序),我想使用基本功能而不需要为每个UI元素计算“所需”空间。 – derdida

1

看起来像您一样将您的搜索栏作为rightBarButtonItem并且该点具有右边距。您的searchBar正在尝试扩展为屏幕的整个宽度,因此会变得太宽。

我使用了一个搜索控制器并实现了didPresentSearchController并在那里调整了大小。