iOS 7 searchdisplaycontroller和tableview偏移不同意偏移量

时间:2013-12-23 17:55:41

标签: ios objective-c uitableview uisearchbar uisearchdisplaycontroller

我在RectEdgeAll视图控制器和搜索栏中有一个tableview作为其tableview标题。当我开始搜索时,搜索栏会动画并稳定在屏幕顶部的正常位置,但是桌面视图不会跟随它,它在开始搜索之前保持在相同的位置,在两个视图之间留下间隙。如何使其与搜索栏一起制作动画?

我尝试在搜索开始时更新tableview的contentOffset,但它甚至没有移动。

尝试了tableview和搜索栏:代码和故事板。

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.tableView.dataSource = self;
    self.tableView.delegate = self;

    //self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
    self.searchBar.delegate = self;
    self.searchController = [[UISearchDisplayController alloc] initWithSearchBar:self.searchBar contentsController:self];
    self.searchController.delegate = self;


}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.view addSubview:self.tableView];
    self.tableView.tableHeaderView = self.searchBar;
}

搜索前:

enter image description here

搜索后:

enter image description here

1 个答案:

答案 0 :(得分:0)

添加

解决了我的问题

[self.view addSubview:self.tableView]; self.tableView.tableHeaderView = self.searchBar;

viewDidLoad函数中的这两行。 如果我使用

 [self.tableView setFrame:CGRectMake(0, 0, 320, 400)];

设置表视图的框架并将这些行放在viewdidappear函数中,我的当前viewcontroller有一个navigationcontroller这个tableview在navigationcontroller后面,但是如果我将这些行放在viewdidload tableview中,则从navigationcontroller下面开始。不知道为什么会发生这种情况