gpt4 book ai didi

ios - UISearchBar 在添加到 iOS 7.1 上的 UITableViewCell 时更改其 super View

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

在我的项目中,我需要一个 UISearchBar 来在 UITableView 上滚动。所以我只是把它放在 UITableViewCell 上,像这样:

    searchBar                   = [[SearchBar alloc] initWithFrame:cell.bounds];
searchBar.delegate = self;
searchBar.placeholder = NSLocalizedString(@"Search friends", "");
searchBar.layer.borderWidth = 1.f;
searchBar.layer.borderColor = [UIColor whiteColor].CGColor;

sdc = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:nil];
sdc.delegate = self;

[cell addSubview:searchBar];

它在 iOS 6 上运行良好。但在 iOS 7 上,它会在刚刚获得焦点时切换到另一个 super View (并且从屏幕上消失)。起初我以为我的项目有问题导致了这种行为,但后来我创建了一个简单的测试项目并验证了这一点 - 事实上,这是一个规则,在 iOS 7.1 UISearchBar 添加到 UITableViewCell 移动到另一个 super View ,并在成为第一响应者后立即从屏幕上消失。

我已经覆盖了搜索栏上的 willMoveToSuperview: 方法,我看到它从 UITableViewCellScrollView 移动到一个 View ,哪个类是 UIView 并且其父 View 的类是 UISearchDisplayControllerContainerView

经过几个小时的搜索和实验,我无法弄清楚是什么原因导致了这种行为以及如何避免这种行为。我所知道的是,它发生在对这两个 UISearchDisplayDelegate 方法的调用之间:searchDisplayControllerWillBeginSearch:searchDisplayControllerDidBeginSearch:

有人遇到过这种情况吗?有什么解决办法吗?

最佳答案

你确定你需要这种奇怪的方式来将 UISearchBar 添加到 UITableViewCell 来滚动它吗?我只是像这样使用 smthng:

UISearchBar *mainSearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];
mainSearchBar.delegate = self;

UISearchDisplayController *searchCon = [[UISearchDisplayController alloc] initWithSearchBar:mainSearchBar contentsController:self ];
searchCon.delegate = self;
searchCon.searchResultsDataSource = self;
searchCon.searchResultsDelegate = self;

mainTableView.tableHeaderView = mainSearchBar;

关于ios - UISearchBar 在添加到 iOS 7.1 上的 UITableViewCell 时更改其 super View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23345607/

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