Risposte:
CGRect frameRect = textField.frame;
frameRect.size.height = 100; // <-- Specify the height you want here.
textField.frame = frameRect;
Non è possibile modificare l'altezza dello stile del bordo rettangolo arrotondato. Per impostare l'altezza, basta scegliere qualsiasi stile di bordo diverso dal bordo arrotondato in Xcode:
Ho finalmente trovato la soluzione per questo!
Come abbiamo scoperto, IB non ci consente di modificare l'altezza dello stile del bordo degli angoli arrotondati. Quindi cambiarlo in uno qualsiasi degli altri stili e impostare l'altezza desiderata. Nel codice cambia di nuovo lo stile del bordo.
textField.borderStyle = UITextBorderStyleRoundedRect;
viewWillLayoutSubviews
. Ho aggiunto un'immagine al campo leftView
di testo e un po 'di testo, e quando questo viene fatto in viewDidLoad
entrambi si estendono in modo strano.
textField.borderStyle = .RoundedRect
Se si utilizza il layout automatico, è possibile farlo sulla scheda Storia.
Aggiungere un vincolo di altezza al campo di testo, quindi modificare la costante del vincolo di altezza su qualsiasi valore desiderato. I passaggi sono indicati di seguito:
Passaggio 1: creare un vincolo di altezza per il campo di testo
Passaggio 2: selezionare Vincolo altezza
Passaggio 3: modificare il valore costante del vincolo di altezza
borderStyle
su qualsiasi cosa tranne che arrotondato. Utilizzare Editor -> Size to Fit Content
per fare in modo che il layout faccia la sua parte. Utilizza la finestra di ispezione proprietà UITextField
per verificare la sua altezza. Usa questo per impostare il tuo vincolo di altezza, e ora puoi cambiare la borderStyle
schiena in quella arrotondata.
1.) Modifica lo stile del bordo in InterfaceBuilder.
2.) Dopo di che puoi cambiare la dimensione.
3.) Crea un IBOutlet su TextField e inserisci il seguente codice viewDidLoad()
per modificare BorderStyle.
textField.borderStyle = UITextBorderStyleRoundedRect;
Swift 3:
textField.borderStyle = UITextBorderStyle.roundedRect
a tuo avviso apparirà impostare gli angoli come rotondi
yourUITextField.borderStyle = UITextBorderStyleRoundedRect;
Segui questi due semplici passaggi e aumenta l'altezza del tuo UItextField
.
Passaggio 1: fare clic con il tasto destro sul file XIB e aprirlo come in "Codice sorgente".
Passaggio 2: trova la stessa UITextfield
fonte e imposta il frame che desideri.
Puoi usare questi passaggi per cambiare il frame di qualsiasi controllo Apple.
Un aggiornamento per iOS 6: utilizzando il layout automatico, anche se non è ancora possibile impostare l'altezza di UITextField dall'Ispettore dimensioni in Interface Builder (almeno da Xcode 4.5 DP4), è ora possibile impostare un vincolo Altezza su esso, che è possibile modificare da Interface Builder.
Inoltre, se stai impostando l'altezza della cornice in base al codice, il layout automatico potrebbe ripristinarla a seconda degli altri vincoli che la tua vista potrebbe avere.
So che questa è una vecchia domanda, ma volevo solo aggiungere se si desidera modificare facilmente l'altezza di un UITextField dall'interno di IB, quindi cambiare semplicemente il tipo di bordo di UITextfield in qualcosa di diverso dal tipo di angolo arrotondato predefinito. Quindi puoi allungare o modificare facilmente gli attributi di altezza dall'interno dell'editor.
@IBDesignable
class BigTextField: UITextField {
override func didMoveToWindow() {
super.didMoveToWindow()
if window != nil {
borderStyle = .roundedRect
}
}
}
UITextField
con BigTextField
.Border Style
in none
.Il mio patetico contributo a questo stupido problema. In IB impostare lo stile su none in modo da poter impostare l'altezza, quindi in IB impostare la classe su una sottoclasse UITextField
che forza lo stile ad essere arrotondato correttamente.
@interface JLTForcedRoundedRectTextField : UITextField
@end
@implementation JLTForcedRoundedRectTextField
- (void)awakeFromNib
{
self.borderStyle = UITextBorderStyleRoundedRect;
}
@end
Mi ha impedito di dover hackerare il file XIB o scrivere codice di stile nel mio controller di visualizzazione.
L'altezza di un UITextField non è regolabile in Impostazioni attributi solo quando ha lo stile del bordo degli angoli arrotondati di default, ma l'aggiunta di un vincolo di altezza (più eventuali altri vincoli necessari per soddisfare il sistema di autolayout - spesso semplicemente usando Aggiungi vincoli mancanti) e regolando il vincolo si regolerà l'altezza del campo di testo. Se non si desidera vincoli, è possibile rimuoverli (Cancella vincoli) e il campo di testo rimarrà all'altezza corretta.
Funziona come un fascino.
UITextField *txt = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
[txt setText:@"Ananth"];
[self.view addSubview:txt];
Gli ultimi due argomenti sono larghezza e altezza, puoi impostare come desideri ...
È possibile utilizzare la proprietà frame del campo di testo per modificare il frame Like-Textfield.frame = CGRECTMake (asse x, asse y, larghezza, altezza)
Questo è abbastanza semplice
yourtextfield.frame = CGRectMake (yourXAxis, yourYAxis, yourWidth, yourHeight);
Dichiara il tuo campo di testo come una proprietà globale e cambia la sua cornice ovunque tu voglia farlo nel tuo codice.
Buona programmazione!
Se ne stai creando molto UITextFields
, può essere più veloce sottoclassare se UITextView
sovrascrivere il metodo setFrame
-(void)setFrame:(CGRect)frame{
[self setBorderStyle:UITextBorderStyleRoundedRect];
[super setFrame:frame];
[self setBorderStyle:UITextBorderStyleNone];
}
In questo modo puoi semplicemente chiamare
[customTextField setFrame:<rect>];