7
votes

Obtenez des dimensions réelles de la vue iOS

Comment puis-je obtenir les dimensions réelles d'une vue ou d'une sous-vision que je contrôle? Par exemple: xxx

Comme vous pouvez le constater, mon but dépasse les dimensions de la vue en cours d'addition.

Avec cela, c'est l'esprit (en supposant que de nombreux objets sont ajoutés sous forme de sous-visions), comment puis-je déterminer la largeur et la hauteur réelles de PremierView ?


4 commentaires

Il est respectivement 230 et 120, je ne vois pas ce que votre problème est.


firstview.bounds.Size.Height (largeur) donne sa taille


@ H2CO3 Ce n'est pas cependant, il est 240 et 140 en raison du positionnement X et Y du bouton. Quoi qu'il en soit, ce n'était pas la question .. Avec des ajouts programmatiques de sous-espions qui dépassent les limites de la vue cible, pouvez-vous calculer les limites réelles de l'original UIView?


@Georgebuckingham Vous voulez dire par accident le CGRRECTERSECTION () FONCTION ?


3 Réponses :


4
votes

Si vous souhaitez que le bouton ait la même largeur et la même hauteur que FirstView, vous devez utiliser la propriété limites d'UIView comme ceci:

CGSize size = firstView.bounds.size;
NSInteger width = size.width;
NSInteger height = size.height;


0 commentaires

0
votes

La première vue est vraiment 200 x 100. Cependant, les vues à l'intérieur ne sont pas coupées à moins que vous utilisiez des clipstobounds .

Une solution préférable à votre problème est d'arrêter d'ajouter des vues dépassant les dimensions ou de cesser de redimensionner les vues afin qu'elles déborde de l'espace disponible, selon le cas.

(pour calculer réellement les limites complètes, y compris toutes les sous-espages de la hiérarchie, il n'est pas difficile, il suffit de beaucoup de travail qui ne vous obtiendra nulle part. uIView permet d'autoriser les vues plus grandes que leurs conteneurs, mais cela ne donne pas nécessairement à aucune garantie sur ce qui fonctionnera correctement et sera susceptible d'être une source de bogues si profité de. La raison du Clipstobounds est probablement ce qui est chère mais nécessaire Lors de l'animation où les sous-espages peuvent être temporairement déplacés hors des limites aux fins d'un effet avant leur retrait de la vue.)


0 commentaires

0
votes

firstview.frame.size.Width firstview.frame.Size.Height


1 commentaires

Le cadre peut ne pas fonctionner si bien si la vue a fait pivoter ... voir Stackoverflow.com/Questtions/5361369/...