2010-07-04 6 views
0

J'ai plusieurs champs de texte dans une vue (pas un scrollview); 2 en particulier sont côte à côte, tous sont créés dans IB.Déplacement d'un champ de texte horizontalement dans la vue

J'utilise le même fichier .xib pour plus d'un écran de saisie. Tous les champs de texte apparaissent au-dessus du clavier, donc le clavier couvrant ces champs n'est PAS un problème.

Sur certains écrans, je n'ai besoin que de l'un des deux champs de texte côte-à-côte, donc je cache l'autre.

À des fins esthétiques uniquement, sur les écrans où un champ est caché, je veux déplacer l'autre champ de texte vers la droite ou vers la gauche afin de centrer ce champ de texte restant, en gardant tous les autres champs de texte .

La propriété .center pour obtenir et déplacer le centre du champ de texte ne semble pas fonctionner avec uitextfield.

Toutes les idées Veuillez

Répondre

0

.center devrait fonctionner sur toutes les sous-classes de UIView, y compris UITextField.
Par exemple:

leftTextField.center = CGPointMake(100, 120); 

Ou:

leftTextField.center = CGPointMake(containingView.bounds.size.width/2, containingView.bounds.size.height/2); 

Vous pourriez aussi changer l'emplacement en mettant à jour le .frame ...

Pouvez-vous un peu de code que vous utilisez et n » t faire le travail?

EDIT: Modification du deuxième exemple de code ...

+0

Merci. J'utilise maintenant textFieldLeft.center = CGPointMake (textFieldLeft.center.x + 75, textFieldLeft.center.y); et cela fonctionne très bien. Je luttais avec la partie textFieldLeft.center.x. Quand vous avez mentionné la mise à jour du cadre, j'ai pensé à la syntaxe .frame.origin.x et j'ai pensé que j'essaierais quelque chose de similaire et cela a fonctionné. Mes tentatives précédentes compilaient et fonctionnaient, ne bougeant pas le champ. Merci encore. –

+0

Et basé sur votre deuxième exemple de code, cela fonctionne bien aussi: textFieldLeft.center = CGPointMake (self.view.bounds.size.width/2, textFieldLeft.center.y); –

+0

Content de vous aider. BTW, avez-vous compris pourquoi vos tentatives n'ont pas fonctionné? Peut-être avez-vous essayé 'leftTextField.center.x = contenantView.bounds.size.width/2;'? Si tel est le cas, rappelez-vous que pour modifier le cadre, les limites ou les propriétés du centre, vous devez modifier la structure entière - vous ne pouvez pas en modifier une partie seulement ... –

Questions connexes