2011-11-03 3 views
2

Lorsque vous redimensionnez un UIView, la largeur/hauteur augmente dans la direction droite/bas. Y at-il un moyen de le faire aller dans des directions opposées? Je pensais que cela pourrait être quelque chose que l'on peut atteindre, mais ça ne ressemble pas à ça.Redimensionner UIView dans la direction opposée

+0

Mais si vous changez x et y du cadre, la direction pourrait être opposée. par exemple, un rect de (10,10,10,10) à (0,0,20,20). Corrige moi si je me trompe. – Mat

+0

@Mat Eh bien, ce n'est pas exactement le contraire, vous le repositionnez. Je suis d'accord que le résultat final est le même. Mais au fond, je suis curieux de savoir si vous pouvez réaliser dans iOS, l'équivalent de ce style CSS: 'position: absolute; en bas: 0; droite: 0; Si vous redimensionnez cet élément, il va dans la direction gauche/haut. – pixelfreak

+0

Je suis curieux de savoir quelle méthode 'resize' utilisez-vous? Ajuster le cadre est la principale façon de redimensionner les choses, par conséquent, cette idée d'une vue redimensionnant le bas/droite dépend de l'appelant qui définit le cadre pour que cela se produise. –

Répondre

2

Le moyen le plus rapide de le faire serait de refaire le cadre de la vue. Dites que vous voulez augmenter sa largeur et sa hauteur de 10 dans la direction "opposée".

Cela ferait cela.

view.frame = CGRectMake(view.frame.origin.x - 10, view.frame.origin.y - 10, view.frame.size.width + 10, view.frame.size.height + 10); 

Vous pourriez mettre cela dans une méthode pour faciliter:

-(void)inverseResizeView(UIView *)view width:(int)deltaWidth height:(int)deltaHeight{ 
    view.frame = CGRectMake(view.frame.origin.x - deltaWidth, view.frame.origin.y - deltaHeight, view.frame.size.width + deltaWidth, view.frame.size.height + deltaHeight); 
} 
+2

Une catégorie sur 'UIView' serait encore plus simple, pas besoin de passer le' UIView' ou de s'inquiéter de savoir "dans quel fichier appartient cette méthode". –

Questions connexes