Come modificare la larghezza di UISearchBar quando si trova all'interno di un'intestazione di tabella in modo che l'indice di sezione non si sovrapponga al campo di testo? Voglio ricreare lo stesso layout che trovi nella vista contatti dell'app del telefono.UISearchBar Tabella Sezione Titoli indice Sovrapposizione
risposta
Una possibile soluzione è aggiungere una vista personalizzata a tableHeaderView. Questo è quello che ho fatto:
searchBar è un UISearchBar che ho dichiarato nel file di intestazione. Ho creato un UIView e aggiunto un UINavigationBar per l'intera larghezza e aggiungo il breve UISearchBar su di esso. Quindi, ho finalmente assegnato l'UIView a tableHeaderView.
searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 290.0, 44.0)];
UIView *customTableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 44.0)];
UINavigationBar *dummyNavigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 44.0)];
[customTableHeaderView addSubview:dummyNavigationBar];
[customTableHeaderView addSubview:searchBar];
[dummyNavigationBar release];
self.tableView.tableHeaderView = customTableHeaderView;
[customTableHeaderView release];
una soluzione più elegante può essere quello di allungare l'UISearchBar utilizzando la proprietà contentStretch. Devo ancora provarlo e controllare se funziona.
Se si utilizza un UISearchDisplayController, il comportamento desiderato funzionerà automaticamente come indicato in this answer.
Intendi la A-Z delle lettere indice sul lato destro dello schermo scavalcato nella barra di ricerca, come si vede in questa schermata in cui la "A" e la "B" appaiono nel bordo destro della barra di ricerca?
(a) non riesco a trovare un modo per evitare questo problema alfabeto-overrun. L'approccio collegato dalla risposta di Scott McCammon qui è vietato da Apple (e anche allora non sono sicuro che risolva questo problema).
(b) Vedo questo comportamento nelle app Apple Contatti in iOS 6.0.1 sul mio iPod touch (4a gen).
(c) Suppongo logicamente che non si tratti di un bug, poiché la barra di ricerca si trova nell'intestazione della vista tabella. L'intestazione fa parte della vista tabella e scorre come una parte della vista tabella, quindi forse ha senso che l'alfabeto dell'indice sia disegnato come nel resto della vista tabella.
Questo problema diventa più un problema quando si dispone di pulsanti di ambito. Sulla destra non è riservato spazio per i pulsanti di ambito, quindi l'alfabeto dell'indice si posiziona direttamente sul pulsante più a destra.
- 1. UITableView Indice sezione pulsante di eliminazione righe sovrapposte
- 2. UISearchBar Non visualizzato
- 3. Sottoview UISearchBar di UITableViewHeader?
- 4. Imposta indice di sezione utilizzando reflect in Go
- 5. Indice della sezione UITableView non in grado di scorrere fino all'indice della barra di ricerca
- 6. Disabilita UISearchBar
- 7. Recupera indice riga tabella della riga corrente
- 8. selezionare la tabella con colonna denominata "indice"
- 9. Trova indice riga tabella utilizzando jQuery
- 10. Crea indice su tabella esterna PostgreSQL
- 11. Prevenire il testo dalla tabella di sovrapposizione td width
- 12. Colonna UIPickerView Titoli
- 13. UIPickerView mostra titoli errati
- 14. UISearchBar pulsante Annulla non risponde
- 15. Indice A-Z da NSFetchedResultsController con intestazioni di sezione individuali all'interno di ogni lettera?
- 16. Tabella lattice di Contenuti Link a sezione sbagliata
- 17. come recuperare tutte le sezione della tabella viste visibili intestazione
- 18. Aggiungi nuova tabella in Magento Crea nuovo ordine Sezione
- 19. Intestazione della sezione tabella: multi-linea/word wrapping
- 20. altezza diversa dell'intestazione della sezione in tabella raggruppata
- 21. La sovrapposizione di Indexer sezione non si aggiorna quando i cambiamenti dei dati dell'adattatore
- 22. UISearchBar colorato come Contatti
- 23. UISearchBar angoli personalizzati
- 24. Custom UISearchBar con UISearchController
- 25. Colore testo UISearchBar
- 26. UISearchBar AutoLayout ios7 bug?
- 27. UISearchBar e resignFirstResponder
- 28. iPhone UISearchBar & keyboardAppearance
- 29. Pulsante Annulla UISearchBar
- 30. Nascondi UISearchBar Pulsante Annulla
L'impostazione ** contentStretch ** non ha funzionato per me. – Sney
@Snej hmm .. allora questa è l'unica soluzione che conosco .. grazie per avermelo fatto sapere :) – srik
Funziona anche in uno storyboard. –