Ios 如何在搜索时防止searchResultsTableView移动
免责声明:我的目标是iOS 7。我意识到iSearchDisplayController在iOS8中不受欢迎,但这正是我需要使用的 我隐藏了标准导航栏。在UIView下面,我有一个UISearchBar和一个UITableView。看起来是这样的: 当我尝试搜索时,结果过滤良好,但searchResultsTableView会飞到屏幕顶部 UISearchBar保持在原来的位置,但tableView会移动以覆盖整个屏幕 我试图阻止tableView移动。所需的行为是使UISearchBar和searchResultsTableView保持原位 到目前为止,我所尝试的:Ios 如何在搜索时防止searchResultsTableView移动,ios,cocoa-touch,ios7,Ios,Cocoa Touch,Ios7,免责声明:我的目标是iOS 7。我意识到iSearchDisplayController在iOS8中不受欢迎,但这正是我需要使用的 我隐藏了标准导航栏。在UIView下面,我有一个UISearchBar和一个UITableView。看起来是这样的: 当我尝试搜索时,结果过滤良好,但searchResultsTableView会飞到屏幕顶部 UISearchBar保持在原来的位置,但tableView会移动以覆盖整个屏幕 我试图阻止tableView移动。所需的行为是使UISearchBar和
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”中
我不熟悉以编程方式添加约束,因此这可能是问题的根源
提前感谢大家!结果证明第二个答案是正确的。我在调试器日志中发现,
NSAutoresizingMaskLayoutConstraint
打破了我试图强加给searchResultsTableView的NSLayoutConstraint
self.searchDisplayController.searchResultsTableView.translatesAutoresizingMaskIntoConstraints = NO;
这一行通过将掩码关闭为约束直接转换来解决问题。我将其放入viewDidLoad中,然后遵循我自己的自定义约束