2008-11-30 9 views
2

Lors de la création d'un UIView avec une barre de navigation dans le constructeur d'interface, la barre supérieure prend de la place, mais la vue a toujours la même taille. Cela signifie que le bas de la vue n'est pas visible.Limites UIView avec barre supérieure

Existe-t-il un moyen d'obtenir la "taille visible" d'un UIView? Je voudrais montrer une sous-vue en bas de l'écran, mais une partie de la sous-vue est cachée puisque la vue parente passe "en dessous" de l'écran.

+0

Demandez-vous sur la façon de faire droit taille dans IB ou comment obtenir et définir la taille dans le code? – RickDT

+0

Je demande d'obtenir la taille en code. –

Répondre

4

Vous devez utiliser le contrôle 'Struts-and-springs' dans IB pour que votre vue de base soit pleinement justifiée. Ensuite, il sera auto-redimensionner. Une fois que vous faites cela, vous pouvez simplement utiliser la propriété view.bounds pour accéder à sa zone visible.

+0

Fonctionne comme un charme. Merci! –

2

Vous devez utiliser la solution de Ben Gottlieb, mais en termes de calcul de la zone visible d'une vue nommée « view », vous pouvez probablement utiliser:

CGRect viewBoundsInWindow = 
    [[[UIApplication sharedApplication] keyWindow] convertRect:view.layer.visibleRect fromView:view]; 
Questions connexes