Réponses:
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 rectangle arrondi. Pour définir la hauteur, choisissez simplement n'importe quel 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. Alors changez-le pour l'un des autres styles et définissez la hauteur souhaitée. Dans le code, modifiez le style de la bordure.
textField.borderStyle = UITextBorderStyleRoundedRect;
viewWillLayoutSubviews
. J'ai ajouté une image au leftView
champ de texte et du texte, et lorsque cela est fait, viewDidLoad
ils s'étirent tous les deux de manière étrange.
textField.borderStyle = .RoundedRect
Si vous utilisez la mise en page 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éer 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
borderStyle
sur tout sauf arrondi. Utilisez Editor -> Size to Fit Content
pour que la mise en page fasse son travail. Utilisez l'inspecteur de propriétés sur votre UITextField
pour vérifier sa hauteur. Utilisez ceci pour configurer votre contrainte de hauteur, et maintenant vous pouvez changer le borderStyle
dos en arrondi.
1.) Modifiez le style de 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 modifier le BorderStyle.
textField.borderStyle = UITextBorderStyleRoundedRect;
Swift 3:
textField.borderStyle = UITextBorderStyle.roundedRect
dans votre vue, apparaîtra définir les coins comme ronds
yourUITextField.borderStyle = UITextBorderStyleRoundedRect;
Suivez ces deux étapes simples et augmentez la hauteur de votre UItextField
.
Étape 1: faites un clic droit sur le fichier XIB et ouvrez-le comme dans "Code source".
Étape 2: Trouvez la même UITextfield
source et définissez le cadre comme vous le souhaitez.
Vous pouvez utiliser ces étapes pour changer le cadre de toutes les commandes Apple.
Une mise à jour pour iOS 6: en utilisant la mise en page automatique, même si vous ne pouvez toujours pas définir la hauteur de UITextField à partir de l'inspecteur de taille dans l'interface Builder (à partir de Xcode 4.5 DP4 au moins), il est désormais possible de définir une contrainte de hauteur sur il, que vous pouvez modifier à partir de l'Interface Builder.
De plus, si vous définissez la hauteur du cadre par code, la mise en page automatique peut le réinitialiser en fonction des autres contraintes que votre vue peut avoir.
Je sais que c'est une vieille question, mais je voulais juste ajouter si vous souhaitez changer facilement la hauteur d'un UITextField à partir de l'intérieur de IB, puis changez simplement le type de bordure de ce UITextfield en autre chose que le type de coin arrondi par défaut. Ensuite, vous pouvez é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 aucun pour pouvoir définir la hauteur, puis dans IB, définissez la classe comme une sous-classe de ce UITextField
qui force le style à être arrondi rect.
@interface JLTForcedRoundedRectTextField : UITextField
@end
@implementation JLTForcedRoundedRectTextField
- (void)awakeFromNib
{
self.borderStyle = UITextBorderStyleRoundedRect;
}
@end
Cela m'a évité d'avoir à pirater le fichier XIB ou à écrire du code de style dans mon contrôleur de vue.
La hauteur d'un UITextField n'est pas réglable dans l'inspecteur d'attributs uniquement lorsqu'il a le style de bordure des coins arrondis par défaut, mais en ajoutant une contrainte de hauteur (ainsi que toute autre contrainte requise pour satisfaire le système de disposition automatique - souvent en utilisant simplement Ajouter des contraintes manquantes) et l'ajustement de 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.
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 ...
Vous pouvez utiliser la propriété frame de textfield pour changer le cadre Like-Textfield.frame = CGRECTMake (axe x, axe y, largeur, hauteur)
Ceci est assez simple.
yourtextfield.frame = CGRectMake (yourXAxis, yourYAxis, yourWidth, yourHeight);
Déclarez votre champ de texte en tant que propriété gloabal et changez son cadre où vous voulez le faire dans votre code.
Bon codage!
Si vous en créez beaucoup, UITextFields
il peut être plus rapide de sous-classes UITextView
et de remplacer la méthode setFrame avec
-(void)setFrame:(CGRect)frame{
[self setBorderStyle:UITextBorderStyleRoundedRect];
[super setFrame:frame];
[self setBorderStyle:UITextBorderStyleNone];
}
De cette façon, vous pouvez simplement appeler
[customTextField setFrame:<rect>];