如何设置表格视图高度。当搜索栏出现和消失时
Posted
技术标签:
【中文标题】如何设置表格视图高度。当搜索栏出现和消失时【英文标题】:How to set the table view height.when search bar is appear and disappear 【发布时间】:2016-05-03 15:58:32 【问题描述】:我有一个表格视图,我正在显示来自 api 的一些数据。我已经添加了一个搜索栏。而且我还有一个名为“搜索栏按钮项按钮”的按钮名称。
那么条件是什么,当屏幕加载时 - 我的搜索栏将处于隐藏状态。如果我按下“搜索栏按钮”,那么只会显示搜索栏。
代码如下:
@IBAction func searchPressed(sender: AnyObject)
if searchBar.hidden
searchBar.hidden = false
else
searchBar.hidden = true
我需要的是,当第一次隐藏搜索栏时,我可以在表格视图上方看到更多空间。但是当我的搜索栏出现时。在我的表格视图中看不到任何空间。
但是当我的搜索栏处于隐藏状态时。我在表格视图上方看到更多空间。如何解决?
这是隐藏搜索栏和上方表格视图上的空间时的图像:
这是显示搜索栏时的图像:
现在我该如何解决这个问题。我需要的是,当我的搜索栏被隐藏时,不应显示空间,而我的表格视图应填充该空间。
如何做到这一点?我试过这个:
if searchBar.hidden
searchBar.hidden = false
TableViewList.rowHeight = 469
else
searchBar.hidden = true
TableViewList.rowHeight = 425
更新代码:
@IBAction func searchPressed(sender: AnyObject)
if searchBar.hidden
searchBar.hidden = false
TableViewList.frame = CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height)
else
searchBar.hidden = true
TableViewList.frame = CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height-searchBar.frame.size.height)
但是没有用。
【问题讨论】:
【参考方案1】:将您的UITableView
固定在UISearchBar
的底部。在显示UISearchBar
时,将其顶部约束的constant
调整为0
。隐藏时,将其顶部约束的constant
调整为-searchBar.bounds.height
。这些值假定UISearchBar
固定在UINavigationBar
的底部
【讨论】:
能否请您提供一些示例代码。我是 ios 新手【参考方案2】:不需要额外的代码,只需从表格视图中删除搜索栏并放置在表格视图的顶部即可。如果搜索栏隐藏,则调整表格视图高度 TableViewList.frame = CGRectmake(0,0,self.view.frame.size.width,self.view.frame.size.height)
否则 TableViewList.frame = CGRectmake(0,0,self.view.frame.size.width,self.view.frame.size.height-srachbar.frame.size.height)
【讨论】:
我应用了你的代码。但在其他部分。我的意思是在那个-searchbar。它没有取值。所以我做了 - 44。但我收到错误`'Int'类型的值没有成员“框架”` 我试图改变,但如果我给 - 搜索栏,它的终点会指向我的屏幕(米表视图) din get you.how to do that statically searchController.searchBar.frame = CGRect(x: 0, y: 0, width: 40 or 50 or 60, height: 50) 请更改y位置。以上是关于如何设置表格视图高度。当搜索栏出现和消失时的主要内容,如果未能解决你的问题,请参考以下文章
刷新控件和搜索栏导致表格视图/滚动视图出现奇怪的偏移,如何解决?