2010-05-09 19 views
0

J'ai un scrollview que j'ai eu à la vue du contrôleur de vue poussé à un UINavigationController. Ma barre de navigation est opaque. Toutefois, le scrollview semble conserver la taille de la vue parent entière. Je voudrais que le scrollview ait la taille de l'espace entre la barre d'outils et la barre de navigation. Est-ce possible ou dois-je coder en dur certaines valeurs de taille?Comment faire un scrollview prendre l'espace entre la uinavigationbar et le uitoolbar

Merci à l'avance

Répondre

2

Lorsque vous initialisez votre ScrollView vous pouvez définir le paramètre contentSize:

[scrollView setContentSize:CGSizeMake(320,392)]; 

La hauteur de l'écran (480) moins la barre d'outils (44) et la barre de navigation (44) = 392. Déposez-le sur 372 si vous affichez également la barre d'état de l'opérateur.

ou, utilisez les propriétés de la géométrie du cadre:

[scrollView setContentSize:CGSizeMake((scrollView.superview.frame.size.width), 
             (scrollView.superview.frame.size.height - 
             toolbar.frame.size.height - 
             navigationController.navigationBar.frame.height))]; 
+0

Et si le prochain iPhone obtient une résolution différente? – Kamchatka

+0

Je ne sais pas exactement comment votre vue est configurée, donc vous devrez peut-être modifier cela, mais vous pouvez utiliser les propriétés de géométrie de l'image: \t [scrollView setContentSize: (CGViewize.size. largeur), (scrollView.superview.frame.size.height - toolbar.frame.size.height - navigationController.navigationBar.frame.hauteur))]; –

+0

Merci pour votre aide. Pourquoi définissez-vous contentSize et pas frame.size? Si je veux que la scrollview se trouve entre la barre de navigation et la barre d'outils, ne devrais-je pas changer scrollview.frame.size? – Kamchatka

0

Lorsque vous utilisez autosize, la taille d'image correcte est pas connu sur viewDidLoad. Vous devez emballer cet intérieur viewWillAppear et tout fonctionne bien

scrollView.contentSize = CGSizeMake(scrollView.superview.frame.size.width, scrollView.superview.frame.size.height);