2011-10-01 12 views
7

Ho aggiunto UISearchBar come tableHeaderView per UITableView in xib, semplicemente trascinando UISearchBar su UITableView. Sta funzionando bene, quando la tabella ha più di 6 righe. Ma quando c'è meno di righe, lo UITableView non scorre.Aggiunta di UISearchBar come tableHeaderView in xib non funziona

Allo stesso tempo, se aggiungo il UISearchBar come tableHeaderView per UITableView in modo programmatico nel file .m utilizzando la seguente dichiarazione, TUTTO FUNZIONA FINE.

tableViewTemp.tableHeaderView = searchBarFriends; 

sembra molto strano per me, quale potrebbe essere il problema?

Si prega di consulenza, grazie.

risposta

2

Ecco un piccolo trucco che ho fatto;) Non fare il vostro SearchBar una visualizzazione secondaria del vostro UITableView. Basta aggiungere le istanze di entrambi nel file del pennino e collegarli come IBOutlet nel tuo UITableViewController. Quindi quello che stai per fare è impostare la barra di ricerca come vista dell'intestazione del tuo tavolo, in questo modo non devi preoccuparti che i fotogrammi si sovrappongano e interferiscano con gli eventi di tocco. Ecco come si fa:

creare la proprietà nel file di intestazione TableView

@property (nonatomic, retain) IBOutlet UISearchBar *searchBar; 

Impostare la visualizzazione dell'intestazione per la vostra tavola:

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 
    return self.searchBar; // The property you wired up in IB 
} 

impostare l'altezza per il vostro intestazione o (UISearchBar)

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { 
    return 44; // The height of the search bar 
} 

Questo è tutto ciò che serve. Ora questa potrebbe non essere la soluzione migliore se si dispone di un tableview raggruppato o di una tabella con più sezioni ma è una soluzione pulita per una tabella semplice. Altrimenti, dovresti regolare il frame della barra di ricerca AND il tableview in codice perché si sovrappongono e questo è il motivo per cui hai problemi di touch. Spero che questo ti aiuti!

+0

Grazie, Jerry, ci proverò. –

+0

L'ho usato nelle mie app, dovrebbe funzionare come un incantesimo. Segna questo come accettato se lo fa;) – jerrylroberts

1

se si aggiunge barra di ricerca come qui di seguito la gerarchia che funzionerà

enter image description here

+0

Ho aggiunto in questo modo solo un amico, ma stava rendendo UITableView non scorrevole quando ci sono meno di 6 record. –

+0

nel mio caso funziona bene anche una riga anche – Narayana

+0

Ok, grazie Narayana, quindi potrebbe essere un altro problema. Controllerò il mio codice –

0

avevo quasi lo stesso problema (per me non sarebbe scorrere a tutti con qualsiasi numero di righe, ma sarebbe come appena ho rimosso la barra di ricerca). Corretto è l'aggiunta di questo viewDidLoad:

self.tableView.alwaysBounceVertical = YES; 
+0

Grazie pt2ph8, proverò anche questo. –

Problemi correlati