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处。
感谢任何帮助。
答案 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)];
}