Mam UISearchDisplayController i wyświetla wyniki w tableview. Kiedy próbuję przewinąć widok tabeli, zawartość jest dokładnie _keyboardHighight wyższa niż powinna. Powoduje to fałszywe przesunięcie w dół. Są to> 50 pozycji w tableview, więc nie powinno być puste miejsca poniżejUISearchDisplayController odsunięcie zawartości tabeli jest niepoprawne po ukryciu klawiatury
8
A
Odpowiedz
12
Rozwiązałem to przez dodanie NSNotificationCenter
słuchacza
- (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];
}
Nie zapomnij usunąć słuchacza
- (void)searchDisplayController:(UISearchDisplayController *)controller willHideSearchResultsTableView:(UITableView *)tableView {
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardDidHideNotification
object:nil];
}
Regulacja contentSize tableview w sposobie powiadamiania
- (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;
}
12
Tutaj jest bardziej prosty i wygodny sposób, aby to zrobić na podstawie Hlung Posted linku:
- (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView {
[tableView setContentInset:UIEdgeInsetsZero];
[tableView setScrollIndicatorInsets:UIEdgeInsetsZero];
}
Uwaga: Oryginalny odpowiedź wykorzystuje NSNotificationCenter produkować takie same wyniki.
Powiązane problemy
- 1. UIScrollView zmienia odsunięcie zawartości na presentModalViewController
- 2. Odtwarzanie wideo po ukryciu aktywności
- 3. Jak kontrolować własny widok tabeli UISearchDisplayController?
- 4. Ponownie stosuj tabelę po ukryciu wierszy (Twitter Bootstrap)
- 5. Jak znaleźć odsunięcie tabeli ciągów nagłówka sekcji pliku elfa?
- 6. UISearchDisplayController nie działa po utworzeniu w kodzie?
- 7. jQuery zatrzymaj wideo HTML5 po ukryciu, uruchom ponownie, gdy visibile
- 8. Zachowanie przycisku akcji pływającej (fab) zatrzymuje się naNestedScroll po ukryciu
- 9. Jak dodać niestandardowe tło do widoku tabeli UISearchDisplayController?
- 10. Animowana zmiana rozmiaru układu po otwarciu klawiatury
- 11. Szerokość kolumn tabeli siły zawsze jest ustalana niezależnie od zawartości
- 12. Dodatkowa przestrzeń nad paskiem wyszukiwania, gdy aktywny jest obiekt UISearchDisplayController
- 13. UISearchBar na UISearchDisplayController przejście jest wyłączone o 20px
- 14. Tableview przewiń zawartość po wyświetleniu klawiatury
- 15. Dopasowywanie kolumny tabeli Bootstrap do zawartości
- 16. zmiana rozmiaru UISearchDisplayController przyciemniona czarna nakładka
- 17. UISearchDisplayController i niestandardowa komórka
- 18. UISearchDisplayController "Brak wyników" text
- 19. Jak sprawdzić, czy określony widok jest widoczny po wyświetleniu klawiatury?
- 20. VideoView nie jest poprawnie renderowany po zniknięciu klawiatury Dialog
- 21. Niepoprawne użycie funkcji grupy podczas aktualizowania tabeli z funkcją sumy
- 22. Zachowywanie zawartości bufora po eglSwapBuffers
- 23. Składniki zawartości UIScrollView nie działają dla Wysokość klawiatury
- 24. UISearchDisplayController automatycznie tworzy kontroler UIPopover, aby wyświetlić wynik wyszukiwania zawartości?! Jak to zignorować?
- 25. Przekieruj stronę po wysłaniu zawartości
- 26. wykrywanie zmiany zawartości UITextField, gdy zmiana nie jest dokonywana za pomocą klawiatury
- 27. iOS 7 UISearchDisplayController Trzaskanie animacji
- 28. C# References; Utrzymywanie członków w ukryciu
- 29. Jest, Maszynopis, ts-jest: Pokrycie jest nieco niepoprawne
- 30. Dlaczego "sudo" jest powolne, gdy hasło jest niepoprawne?
Ta [odpowiedź] (http://stackoverflow.com/a/19162257/467588) jest podobna, ale nieco krótsza;) – Hlung