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?
CGRect frameRect = textField.frame;
frameRect.size.height = 100; // <-- Specify the height you want here.
textField.frame = frameRect;
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:
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;
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
Étape 2: Sélectionnez la contrainte de hauteur
Étape 3: Modifier la valeur constante de la contrainte de hauteur
1.) Modifiez le style de la bordure dans InterfaceBuilder.
2.) Après cela, vous pouvez changer la taille.
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
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.
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.
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.
@IBDesignable
class BigTextField: UITextField {
override func didMoveToWindow() {
super.didMoveToWindow()
if window != nil {
borderStyle = .roundedRect
}
}
}
UITextField
par BigTextField
.Border Style
par none
.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.
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.
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!
Dans Swift 3, utilisez:
yourTextField.frame.size.height = 30
Si vous créez beaucoup de UITextFields
, il peut être plus rapide de placer la sous-classe UITextView
s 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>];
essaye ça
UITextField *field = [[UITextField alloc] initWithFrame:CGRectMake(20, 80, 280, 120)];
Vous pouvez utiliser la propriété frame de textfield pour changer de cadre. Like-Textfield.frame = CGRECTMake (axe x, axe y, largeur, hauteur)
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 ...
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.