web-dev-qa-db-fra.com

Comment définir la hauteur UITextField?

J'utilise un UITextField. Je veux augmenter sa hauteur mais je n'ai trouvé aucune propriété pour le faire. Comment puis-je atteindre cet objectif?

126
Arun
CGRect frameRect = textField.frame;
frameRect.size.height = 100; // <-- Specify the height you want here.
textField.frame = frameRect;
81
Manjunath

Vous ne pouvez pas modifier la hauteur du style de bordure rectangulaire arrondi. Pour définir la hauteur, choisissez un style de bordure autre que la bordure arrondie dans Xcode:

enter image description here

202
Brian

J'ai enfin trouvé le correctif pour cela!

Comme nous l'avons constaté, IB ne nous permet pas de modifier la hauteur du style de bordure d'angle arrondi. Changez-le donc dans l’un des autres styles et réglez la hauteur souhaitée. Dans le code, changez le style de la bordure.

textField.borderStyle = UITextBorderStyleRoundedRect;
150
nathanbroyles

Si vous utilisez la disposition automatique, vous pouvez le faire sur le story-board.

Ajoutez une contrainte de hauteur au champ de texte, puis remplacez la constante de contrainte de hauteur par la valeur souhaitée. Les étapes sont indiquées ci-dessous:

Étape 1: Créez une contrainte de hauteur pour le champ de texte

enter image description here

Étape 2: Sélectionnez la contrainte de hauteur

enter image description here

Étape 3: Modifier la valeur constante de la contrainte de hauteur

enter image description here

83
user1046037
  1. Choisissez le style de bordure comme non arrondi

enter image description here

  1. Définissez votre taille

enter image description here

dans votre vueWillAppear définir les coins comme des arrondis

yourUITextField.borderStyle = UITextBorderStyleRoundedRect;

enter image description here

  1. Profitez de votre UITextField rond et grand
27
Deprecated Darren

1.) Modifiez le style de la bordure dans InterfaceBuilder.

enter image description here

2.) Après cela, vous pouvez changer la taille.

enter image description here

3.) Créez un IBOutlet sur votre TextField et entrez le code suivant dans votre viewDidLoad() pour rétablir le style de bordure.

textField.borderStyle = UITextBorderStyleRoundedRect;

Swift 3:

textField.borderStyle = UITextBorderStyle.roundedRect
25
David Seek

Suivez ces deux étapes simples et augmentez la hauteur de votre UItextField.

Step 1: Faites un clic droit sur le fichier XIB et ouvrez-le comme dans "Code source".

Étape 2: Trouvez la même source UITextfield et définissez le cadre à votre guise.

Vous pouvez utiliser ces étapes pour changer le cadre de n’importe quel contrôle Apple.

14
Sunil Targe

Mise à jour pour iOS 6: utilisation de la disposition automatique, même si vous ne pouvez toujours pas définir la hauteur de UITextField à partir de l'inspecteur de taille dans Interface Builder (au moins à partir de Xcode 4.5 DP4), il est désormais possible de définir une contrainte de hauteur. que vous pouvez modifier à partir d’Interface Builder.

De plus, si vous définissez la hauteur du cadre à l'aide d'un code, la mise en page automatique peut le réinitialiser en fonction des autres contraintes de votre vue.

8
Guillaume Laurent

Je sais que cette question est ancienne, mais je voulais simplement ajouter que si vous souhaitez modifier facilement la hauteur d’un UITextField depuis IB, changez simplement le type de bordure de cet UITextfield en un type autre que le type de coin arrondi par défaut. Vous pouvez ensuite étirer ou modifier facilement les attributs de hauteur depuis l’éditeur.

6
Mark McCorkle

Swift3

@IBDesignable
class BigTextField: UITextField {
    override func didMoveToWindow() {
        super.didMoveToWindow()
        if window != nil {
            borderStyle = .roundedRect
        }
    }
}

Interface Builder

  • Remplacez UITextField par BigTextField.
  • Remplacez Border Style par none.
4
neoneye

Ma contribution pathétique à ce problème stupide. Dans IB, définissez le style sur none pour pouvoir définir la hauteur, puis dans IB, définissez la classe sur une sous-classe de UITextField pour forcer le style à être arrondi.

@interface JLTForcedRoundedRectTextField : UITextField
@end

@implementation JLTForcedRoundedRectTextField
- (void)awakeFromNib
{
    self.borderStyle = UITextBorderStyleRoundedRect;
}
@end

Cela m'a évité de devoir pirater le fichier XIB ou l'écriture de code de style dans mon contrôleur de vue.

3
Jeffery Thomas

La hauteur d'un UITextField n'est pas ajustable dans l'inspecteur d'attributs uniquement lorsque le style de bordure par coins arrondis par défaut est ajouté, mais qu'une contrainte de hauteur est ajoutée (ainsi que toute autre contrainte nécessaire pour satisfaire le système d'autolayout, souvent en utilisant simplement Ajouter des contraintes manquantes) et ajuster la contrainte ajustera la hauteur du champ de texte. Si vous ne voulez pas de contraintes, les contraintes peuvent être supprimées (Effacer les contraintes) et le champ de texte restera à la hauteur ajustée.

Fonctionne comme un charme.

2
Simon.

C'est assez simple.

yourtextfield.frame = CGRectMake (yourXAxis, yourYAxis, yourWidth, yourHeight);

Déclarez votre champ de texte en tant que propriété globale et changez son cadre où vous le souhaitez dans votre code.

Bon codage!

2
Valentina

Dans Swift 3, utilisez:

yourTextField.frame.size.height = 30
2
Kaptain

Si vous créez beaucoup de UITextFields, il peut être plus rapide de placer la sous-classe UITextViews et de remplacer la méthode setFrame par

-(void)setFrame:(CGRect)frame{
    [self setBorderStyle:UITextBorderStyleRoundedRect];
    [super setFrame:frame];
    [self setBorderStyle:UITextBorderStyleNone];
}  

De cette façon, vous pouvez simplement appeler
[customTextField setFrame:<rect>];

1
mylogon

essaye ça

UITextField *field = [[UITextField alloc] initWithFrame:CGRectMake(20, 80, 280, 120)];
1
Tendulkar

Vous pouvez utiliser la propriété frame de textfield pour changer de cadre. Like-Textfield.frame = CGRECTMake (axe x, axe y, largeur, hauteur)

1
Harshit_Jobs
UITextField *txt = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    [txt setText:@"Ananth"];
    [self.view addSubview:txt];

Les deux derniers arguments sont la largeur et la hauteur, vous pouvez définir comme vous le souhaitez ...

1
User-1070892

J'avais le même problème. essayé certaines des solutions ici, mais plutôt que de faire tout ce charabia. J'ai trouvé que le réglage des contraintes de hauteur suffit.

0
Alix