ios – 键盘隐藏后UISearchDisplayController tableview内容偏移量不正确
2020年01月16日
作者:佚名
我有一个UISearchDisplayController,它在tableview中显示结果.当我尝试滚动tableview时,contentsize正好是_keyboardHeight比它应该更高.这导致错误的底部偏移.有> tableview中有50个项目,因此下面不应该有空格
解决方法
我通过添加NSNotificationCenter侦听器解决了这个问题
- (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView { //this is to handle strange tableview scroll offsets when scrolling the search results [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardDidHideNotification object:nil]; }
别忘了删除监听器
- (void)searchDisplayController:(UISearchDisplayController *)controller willHideSearchResultsTableView:(UITableView *)tableView { [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardDidHideNotification object:nil]; }
在通知方法中调整tableview内容
- (void)keyboardDidHide:(NSNotification *)notification { if (!self.searchDisplayController.active) { return; } NSDictionary *info = [notification userInfo]; NSValue *avalue = [info objectForKey:UIKeyboardFrameEndUserInfoKey]; CGSize KeyboardSize = [avalue CGRectValue].size; CGFloat _keyboardHeight; UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; if (UIDeviceOrientationIsLandscape(orientation)) { _keyboardHeight = KeyboardSize.width; } else { _keyboardHeight = KeyboardSize.height; } UITableView *tv = self.searchDisplayController.searchResultsTableView; CGSize s = tv.contentSize; s.height -= _keyboardHeight; tv.contentSize = s; }
以上是来客网为你收集整理的ios – 键盘隐藏后UISearchDisplayController tableview内容偏移量不正确全部内容,希望文章能够帮你解决ios – 键盘隐藏后UISearchDisplayController tableview内容偏移量不正确所遇到的程序开发问题。
如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。