2010-11-05 20 views
5

Desidero avere un UIToolBar trasparente su un UIWebView, in modo che l'utente ottenga una prospettiva e una panoramica più ampia.UIToolBar trasparente su UIWebView

Tuttavia, quando faccio questo, non è possibile vedere il fondo della pagina. Ho pensato di impostare un offset in basso, ma non ci si può fidare di questo, poiché il livello di zoom può variare (e ogni pixel varrà meno).

Come è possibile eseguire lo scorrimento webView e arrestarlo sul bordo superiore di UIToolBar?

risposta

2

ho provato la soluzione Emils, ma non funziona per iOS7 dal momento che non vi eredita da un UIWebViewScrollView. Quindi, adattato il suo codice al seguente:

for (id view in [self.webView subviews]){ 
    if ([view respondsToSelector:@selector(setContentInset:)]){ 
     [(UIScrollView *)view setContentInset:UIEdgeInsetsMake(0, 0, 44, 0)]; 
    } 
} 
0

Sembra che tu non vuoi che l'UIToolbar a sovrapporsi tuo UIWebView. Invece, si desidera impostare i loro frame in modo tale che UIWebView si estenda solo dove inizia la UIToolbar.

Se si impostano queste viste a livello di programmazione, è sufficiente impostare l'altezza del frame di UIWebView in modo che corrisponda alle dimensioni dei limiti del genitore - l'altezza del frame di UIToolbar. Se lo fai in InterfaceBuilder, trascina il bordo inferiore di UIWebView per ridimensionarlo in modo che si fermi dove inizia la UIToolbar o modificarne la cornice nell'ispettore.

+0

L'intero punto di uno strumento trasparente Barra significa mostrare le cose sotto di esso. Quindi no, non voglio che UIWebView si fermi proprio sopra la barra degli strumenti. – Emil

+0

Scusa, quindi immagino di non capire cosa stai cercando di fare. – Ryan

+0

Ordina l'app Foto, solo che voglio che il bordo inferiore dell '"immagine" sia in grado di scorrere oltre il bordo della barra degli strumenti! :) – Emil

3

ho riparato impostando un inserto in UIScrollView-visualizzazione secondaria del UIWebView:

for (id view in [webView subviews]){ 
    if ([view isMemberOfClass:[UIScrollView class]]){ 
     [(UIScrollView *)view setContentInset:UIEdgeInsetsMake(0, 0, 44, 0)]; 
    } 
} 

guarda e funziona benissimo!

4

È necessario impostare contentInset e scrollIndicatorInsets. Se non si imposta scrollIndicatorInsets, l'indicatore di scorrimento passerà sotto la barra degli strumenti UIToolbar che non sembra corretta.

float toolbarHeight = toolbar.frame.size.height; 

UIEdgeInsets insets = webView.scrollView.contentInset; 
insets.bottom = toolbarHeight; 
[webView.scrollView setContentInset:insets]; 

UIEdgeInsets indicatorInsets = webView.scrollView.scrollIndicatorInsets; 
indicatorInsets.bottom = toolbarHeight; 
[webView.scrollView setScrollIndicatorInsets:indicatorInsets];