我在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;
}
搜索前:
搜索后:
答案 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下面开始。不知道为什么会发生这种情况