UISearchBar覆盖UITableView - TableView无法移动

时间:2014-06-27 10:05:28

标签: ios arrays uitableview uisearchbar

我有一个TableView和一个搜索栏设置,到目前为止都工作正常。问题是UISearchBar覆盖了我的TableView的第一项。

我不能在这个项目中使用XIB或故事板。

TableView的定义和实例化是在一个类中的一个星系(由我导入的类导入...)远,很远 - 不容易访问。

我在屏幕上移动(实例化)SearchBar:

self.searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 320, 44)];
[self.view addSubview:self.searchBar];
self.searchBar.delegate = self;

我尝试将其移至0,-44然后屏幕不会停留在SearchBar,它会向下移动。

如果我尝试使用:

移动UITableView
self.tableView.frame = CGRectMake(0, 0, 320, 500);

它也会移动SearchBar。

所以,假设我将搜索栏的原点设置为0,0,将表格视图的原点设置为0.44,我得到一个屏幕(按此顺序排列的对象):

  • 带有搜索栏/表格视图单元格高度的灰色空间
  • 搜索栏(仍覆盖我的表格视图的第一个单元格
  • 其他细胞

我该如何解决这个问题?我认为最简单的方法是在我的数据数组中添加一个空对象,这样搜索栏就不会重要,但这不是最好的解决方法。

有人能告诉我如何在数组中添加/插入一个对象然后将另一个数组复制到其中,从索引1开始,所以我的空对象会留在那里吗?

1 个答案:

答案 0 :(得分:0)

您可以在tableView上使用contentInset属性。只需将顶部插图设置为搜索栏的高度即可。

self.tableView.contentInset = UIEdgeInsetsMake(self.searchBar.frame.size.height, 0, 0, 0);

这应该可以解决问题。