【发布时间】:2015-02-17 21:23:08
【问题描述】:
免责声明:我的目标是 iOS 7。我意识到 UISearchDisplayController 在 iOS8 中已被弃用,但这是我需要使用的。
我隐藏了标准导航栏。在 UIView 下方,我有一个 UISearchBar 和一个 UITableView。它看起来像这样:
当我尝试搜索时,结果过滤正常,但 searchResultsTableView 飞到屏幕顶部。
UISearchBar 保持在原来的位置,但 tableView 移动以覆盖整个屏幕。
我试图阻止 tableView 移动。期望的行为是让 UISearchBar 和 searchResultsTableView 保持原位
到目前为止我已经尝试过:
- 我查看了代表以寻找是否可以轻松禁用它并且找不到任何东西。
- 我正在使用 Autolayout,因此以编程方式设置约束以移动 searchResultTableView 的顶部是合乎逻辑的。
(请原谅格式)
-(void) searchDisplayController:(UISearchDisplayController *)控制器 didShowSearchResultsTableView:(UITableView *)tableView {
NSDictionary * views = @{ @"searchResultsTableView" : self.searchDisplayController.searchResultsTableView}; NSArray * topConstraint = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-64-[searchResultsTableView]-|" options:0 metrics:nil views:views]; [self.searchDisplayController.searchResultsTableView.superview addConstraints:topConstraint]; }
我也尝试将约束添加到“willShowSearchResultsTableView” 我不熟悉以编程方式添加约束,因此这可能是问题的根源。
- 我知道我可以通过将 TableView 和 SearchBar 放置在 ContainerView 中来解决此问题,但我试图避免这样做,因为那是多余的和浪费的。
提前谢谢大家!
【问题讨论】:
标签: ios cocoa-touch ios7