2012-12-03 14 views
7

A causa dello stile della barra di navigazione traslucido, ottengo la mia prima intestazione di sezione (sezione # 0) nascosta sotto la barra di navigazione.UITableView intestazione di sezione si insinua sotto la barra di navigazione

So che questo è stato chiesto prima, e una soluzione ad esso è quello di fare:

self.navController.navigationBar.translucent = YES; 

Questo pone la corretta visione problematica - intestazione di sezione appare sotto la barra di navigazione, invece di nascondersi dietro di essa, che è quello che voglio.

Tuttavia, questo invalida i miei altri progetti di visualizzazione e lascia spazi aggiuntivi in ​​tutti loro, proprio sotto la barra di navigazione.

Come si ottiene l'intestazione della sezione nella posizione corretta?

risposta

14

risolto:

  • Apri file storyboard
  • selezionare UITableView
  • Sotto attributo inspector -> vista di scorrimento dimensioni -> Content inserti, set top = 44 (o qualunque sia il navigatore altezza bar).

vedi immagine qui sotto - è sotto la sezione dimensioni:

enter image description here

And here is come risolvere il problema di programmazione.

+0

Dove si trova l'ispettore di attributi? – Gank

+0

I contenuti non sono presenti nell'ispettore, ma solo gli indicatori di scorrimento. –

+0

@SteveTaylor - controlla se l'hai accidentalmente nascosto usando il pulsante Nascondi. –

1

Per gli altri che hanno questo problema durante l'utilizzo (SVPullToRefresh).

Può essere risolto modificando view.originalTopInset in UIScrollView + SVPullToRefresh.m in qualunque punto si desideri iniziare l'intestazione.

+0

Tariq puoi per favore condividere i dettagli su questo? Dopo l'operazione di scorrimento iniziale, non riesco mai a vedere il mio primo elemento tableview che si insinua sotto il navcontroller/bar. Vedo nel codice SVPullToRefresh la variabile originalTopInset ma è usata in molti posti - dove dovrei cambiarla e come? –

8

Per risolvere questo problema durante l'utilizzo di SVPullToRefresh. Ho creato il metodo qui sotto e al posto di [self.tableView.pullToRefreshView stopAnimating];

-(void)stopPullToRefreshAnimation 
{ 
    [self.tableView.pullToRefreshView stopAnimating]; // call to stop animation 

    UIEdgeInsets inset = UIEdgeInsetsMake(44, 0, 0, 0); 
    self.tableView.contentInset = inset; 
    self.tableView.scrollIndicatorInsets = inset; 
} //stopPullToRefreshAnimation 
+0

proprietà pulltorefreshview non trovato su oggetto di tipo tableview –