Voglio aggiungere un UISearchBar a un UITableView che ha già una vista di intestazione. Quando provo ad aggiungere la barra di ricerca alla vista dell'intestazione esistente funziona fino a quando non lo tocco, a quel punto ottengo The view hierarchy is not prepared for the constraint
, che sembra essere perché la barra di ricerca non è una sottoview diretta della vista tabella in modo che quando UISearchController prova a aggiorna i vincoli che non puòSottoview UISearchBar di UITableViewHeader?
L'unico modo per aggirare ciò che ho trovato è rendere l'intestazione della vista tabella la barra di ricerca, quindi tutto funziona correttamente, ma ovviamente poi perdo le altre viste che erano già nella vista dell'intestazione.
Wow, grazie! Mi ci sono voluti giorni di ricerche e tentativi di soluzioni alternative fino a trovare il tuo post. Dal momento che sto usando UISearchController ho uno strano problema in cui UISearchBar viene aggiunto a searchBarContainer, ma poi quando eseguo il check in viewWillAppear non è più lì, quindi devo aggiungerlo manualmente di nuovo. Attualmente sto combattendo contro la stranezza del fotogramma iniziale dopo aver aggiunto nuovamente UISearchBar come sottomenu nel contenitore, ma questo è decisamente nella giusta direzione. –
Potrebbe essere necessario aggiungere questo in viewWillAppear: if (self.searchBarContainerView.subviews.count == 0) { [self.searchBarContainerView addSubview: self.searchController.searchBar]; // anche per correggere l'altezza del frame CGRect frame = self.searchBarContainerView.frame; frame.size.height = 44.0f; self.searchBarContainerView.frame = frame; } –