gpt4 book ai didi

ios - 更改搜索栏的位置

转载 作者:行者123 更新时间:2023-11-29 12:22:00 25 4
gpt4 key购买 nike

我在表格的标题中有一个搜索栏,但它非常低,并且当出现键盘时,搜索不可见。当搜索栏太低且不可见时,如何在表格中滚动?否则我不想改变它的位置。

截图如下: enter image description here

如果我更改搜索栏的框架,我会得到:

enter image description here

-(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {


if (self.searchBar.frame.origin.y>270) {
self.cowTableView.frame=CGRectMake(self.cowTableView.frame.origin.x,self.cowTableView.frame.origin.y-300,self.cowTableView.frame.size.width, self.cowTableView.frame.size.height);}


return YES;
}

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {
self.cowTableView.frame=CGRectMake(self.cowTableView.frame.origin.x,self.cowTableView.frame.origin.y+300,self.cowTableView.frame.size.width, self.cowTableView.frame.size.height);
return YES;
}

最佳答案

首先,您必须采用 UISearchBarDelegate Protocol在您的 UISearchBar 上,在该协议(protocol)中,您将需要两个委托(delegate)方法来确定用户何时开始和结束使用 TableView 标题中的 UISearchBar

-(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
//Called when user clicks search bar
return YES;
}
- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {
return YES;
}

您确实需要确定 UISearchBar 在屏幕上的位置,因为我假设您总是希望它位于屏幕上的 (0,0) 处。要执行此操作,请调用 rectForRowAtIndexPath: 以获取您的单元格在表格 View 中的当前 y 位置。获得 y 位置后,您必须确定 TableView 的当前偏移量并使用该值设置 UISearchBar

的位置
//Determine the position of the cell relative to the screen origin
CGRect cellRect = [tableView rectForRowAtIndexPath:indexPath];
cellRect = CGRectOffset(cellRect, -self.tableView.contentOffset.x, -self.tableView.contentOffset.y);

现在 cellRect 将包含正确的值,供您在 TableView 上调用 setContentOffset:animated:

[self.tableView setContentOffset:CGPointMake(cellRect.origin.x, self.tableView.contentOffset.y - cellRect.origin.y ) animated:YES];

现在您的 UISearchBar 将位于屏幕顶部。

关于ios - 更改搜索栏的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30328959/

25 4 0