gpt4 book ai didi

iphone - 如何使用 iPhone SDK 3.0 中的 UISearchDisplayController 实现始终位于顶部的搜索栏

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

iPhone SDK 3.0 有这个方便的新类“UISearchDisplayController”,可以轻松创建搜索栏、处理所有用户输入并显示搜索结果。

我正在将它用于我的新应用程序,但我想更改一件事:

默认情况下,搜索栏应放置在显示搜索结果的 UITableView 的顶部。因此,当向下滚动结果列表时,搜索栏就会消失。

我想要实现的是让搜索栏始终位于顶部,并且在滚动 TableView 时,搜索栏应保持在原来的位置。 (原因:在我的应用程序中有时会有很多搜索结果,所以有时用户必须向下滚动一段时间,当他意识到必须更改搜索字符串时,我不想强​​迫他一直向后滚动)

我已经做的是将搜索栏添加到 UINavigationController 的 View 中,这是我的表格 View 的“父 View ”,而不是直接将其添加到表格 View 中:

MyAppDelegate *delegate = [[UIApplication sharedApplication] delegate];

searchBar = [[UISearchBar alloc] init];
searchBar.delegate = self;

[searchBar sizeToFit];
CGFloat searchBarHeight = [searchBar frame].size.height;
CGRect mainViewBounds = delegate.navController.view.bounds;
[searchBar setFrame:CGRectMake(CGRectGetMinX(mainViewBounds),
CGRectGetMinY(mainViewBounds) + 20,
CGRectGetWidth(mainViewBounds),
searchBarHeight)];
searchBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;

[delegate.navController.view addSubview: searchBar];

searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar: searchBar contentsController: self];
searchDisplayController.searchResultsDataSource = self;
searchDisplayController.searchResultsDelegate = self;

...但我的问题是,表格 View 位于搜索栏后面,并且搜索结果的第一个 TableViewCell 始终隐藏在我的搜索栏后面。

有没有办法永久调整 UITableViewController 的 UITableView 大小,以便它在搜索栏下方开始?

还有另一个问题:每次我触摸搜索栏时,UISearchDisplayController 都会自动隐藏导航栏并调整 UITableView 的大小(它扩展到顶部),所以我认为此时 UISearchDisplayController 会对我的应用程序产生很大的问题。自定义大小的 TableView...

非常感谢您的帮助!!

最佳答案

我的脑海中没有解决方案 - 但我会说,通过用户只需点击屏幕顶部并将表格缩放到顶部的能力,您的担忧似乎最小化了(如果搜索词有误,请更改)。

关于iphone - 如何使用 iPhone SDK 3.0 中的 UISearchDisplayController 实现始终位于顶部的搜索栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1213717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com