2010-01-04 8 views
2

Est-il possible d'avoir un UIView avec sa taille de limites différente de sa taille de trame? J'essaye de créer un UIView avec le cadre "{{0,0}, {320,367}}" et les limites "{{0,15}, {320,337}}" mais je ne peux pas le faire en utilisant setBounds() et setFrame().UIView: taille de l'image différente de la taille des limites?

J'ai obtenu du doc ​​que les limites changeantes ou le cadre change le cadre ou les limites en conséquence mais je pensais qu'il était OK d'avoir différentes valeurs pour thèses.

Merci beaucoup.

Répondre

2

Généralement:
1. Les limites sont à (0,0) tandis que le cadre (et le centre) indiquent la position de la vue.
2. Les limites et le cadre auraient la même largeur et hauteur.

MISE À JOUR
Il semble que vous voulez ajouter un bouton ci-dessous une vue spécifique qui était auparavant plus grande.
Dans ce cas, je créerais une nouvelle vue occupant tout l'espace. Ensuite, j'ajouterais la vue spécifique maintenant plus petite dans la position désirée en tant que sous-vue. Enfin, je voudrais ajouter le nouveau bouton dans la position désirée comme une autre sous-vue à la nouvelle vue de l'espace complet.
Vous pouvez effectuer cette mise en page dans Interface Builder ou du code.

+0

J'essaye de redimensionner une vue afin d'avoir un espace vide en dessous. Puisque je veux ajouter un bouton dans cet espace vide, je voudrais que la vue soit redimensionnée en modifiant les limites mais avec la taille d'image originale ainsi mon bouton est touchable. – Vivi

+0

Ma réponse a été mise à jour avec une mise en page suggérée. – gerry3

+0

Merci pour la suggestion mais je suppose que je pourrais avoir des problèmes à le faire puisque ma vue et le contrôleur ont des délégués et d'autres choses. Mais je vais essayer :) – Vivi

4

Oui, lors de la rotation du périphérique, l'ensemble de la hiérarchie de vue est transformé à l'aide d'un CGAffineTransform. Dans ce cas, vos limites et vos cadres peuvent avoir des valeurs différentes. La meilleure façon d'assurer la position d'une vue est de définir sa propriété bounds pour la taille et sa propriété center pour la position.

Questions connexes