iOS中UITableView的UISearchDisplayController框架

时间:2012-02-08 18:56:06

标签: iphone ios uisearchbar uisearchdisplaycontroller

  • 我的UITable有一个UISearchDisplayController
  • UITable小于屏幕宽度(以280像素宽度为中心)。
  • 当我点击search bar时,UISearchDisplayController表一直显示在屏幕左侧。
  • 即使更改UISearchDisplayController表格的框架,我仍然可以获得相同的定位。

我在这里设置框架:

- (void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView  {
    tableView.backgroundColor = [UIColor colorWithRed:29.0/255.0 green:30.0/255.0 blue:32.0/255.0 alpha:1];
    tableView.rowHeight = self.myTable.rowHeight;
    tableView.frame = myTable.frame;
    NSLog(@"search table origin: %f",tableView.frame.origin.x);
}

即使更奇怪,当我在搜索表位置末尾记录时,它会显示16.但是,它在视图中的位置0处。

感谢任何帮助。

2 个答案:

答案 0 :(得分:20)

我回答了自己的问题。需要在此委托方法中设置框架:

- (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView  {

    tableView.frame = self.myTable.frame;

}

答案 1 :(得分:1)

试试这个简单的方法:

//--Search display controller frame

- (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView
{
    CGRect statusBarFrame =  [[UIApplication sharedApplication] statusBarFrame];

    [tableView setFrame:CGRectMake(my_table.frame.origin.x, tableView.frame.origin.y, my_table.frame.size.width, my_table.frame.size.height)];

}