Antworten:
CGRect frameRect = textField.frame;
frameRect.size.height = 100; // <-- Specify the height you want here.
textField.frame = frameRect;
Sie können die Höhe des abgerundeten rechten Randstils nicht ändern. Um die Höhe festzulegen, wählen Sie in Xcode einfach einen anderen Rahmenstil als den abgerundeten Rand:
Ich habe endlich die Lösung dafür gefunden!
Wie wir festgestellt haben, können wir mit IB die Höhe des Randstils mit abgerundeten Ecken nicht ändern. Ändern Sie es also in einen der anderen Stile und stellen Sie die gewünschte Höhe ein. Ändern Sie im Code den Rahmenstil zurück.
textField.borderStyle = UITextBorderStyleRoundedRect;
viewWillLayoutSubviews
. Ich habe dem leftView
Textfeld und etwas Text ein Bild hinzugefügt , und wenn dies erledigt ist, viewDidLoad
dehnen sich beide seltsam.
textField.borderStyle = .RoundedRect
Wenn Sie das automatische Layout verwenden, können Sie dies auf dem Storyboard tun.
Fügen Sie dem Textfeld eine Höhenbeschränkung hinzu, und ändern Sie dann die Höhenbeschränkungskonstante auf einen beliebigen Wert. Die Schritte sind unten gezeigt:
Schritt 1: Erstellen Sie eine Höhenbeschränkung für das Textfeld
Schritt 2: Wählen Sie Höhenbeschränkung
Schritt 3: Ändern Sie den konstanten Wert der Höhenbeschränkung
borderStyle
alles außer Rundung ein. Verwenden Sie Editor -> Size to Fit Content
, damit das Layout seine Sache macht. Verwenden Sie den Immobilieninspektor auf Ihrem UITextField
, um die Höhe zu überprüfen. Verwenden Sie diese Option, um Ihre Höhenbeschränkung einzurichten. Jetzt können Sie den borderStyle
Rücken in den abgerundeten ändern .
1.) Ändern Sie den Rahmenstil im InterfaceBuilder.
2.) Danach können Sie die Größe ändern.
3.) Erstellen Sie ein IBOutlet für Ihr TextField und geben Sie den folgenden Code ein viewDidLoad()
, um den BorderStyle wieder zu ändern.
textField.borderStyle = UITextBorderStyleRoundedRect;
Swift 3:
textField.borderStyle = UITextBorderStyle.roundedRect
In Ihrer Ansicht wird WillAppear die Ecken als rund festlegen
yourUITextField.borderStyle = UITextBorderStyleRoundedRect;
Befolgen Sie diese beiden einfachen Schritte und erhöhen Sie Ihre Körpergröße UItextField
.
Schritt 1: Klicken Sie mit der rechten Maustaste auf die XIB-Datei und öffnen Sie sie wie unter "Quellcode".
Schritt 2: Finden Sie das gleicheUITextfield
Quelle und stellen Sie den gewünschten Rahmen ein.
Mit diesen Schritten können Sie den Rahmen aller Apple-Steuerelemente ändern.
Ein Update für iOS 6: Mithilfe des automatischen Layouts können Sie jetzt eine Höhenbeschränkung festlegen, obwohl Sie die Höhe des UITextField im Größeninspektor im Interface Builder nicht festlegen können (mindestens ab Xcode 4.5 DP4) es, das Sie im Interface Builder bearbeiten können.
Wenn Sie die Höhe des Rahmens per Code festlegen, wird sie möglicherweise durch das automatische Layout zurückgesetzt, abhängig von den anderen Einschränkungen, die Ihre Ansicht möglicherweise hat.
Ich weiß, dass dies eine alte Frage ist, aber ich wollte nur hinzufügen, ob Sie die Höhe eines UITextFields innerhalb von IB einfach ändern möchten, und dann einfach den Randtyp dieses UITextfields in einen anderen als den Standardtyp für abgerundete Ecken ändern möchten. Dann können Sie Höhenattribute einfach aus dem Editor heraus strecken oder ändern.
@IBDesignable
class BigTextField: UITextField {
override func didMoveToWindow() {
super.didMoveToWindow()
if window != nil {
borderStyle = .roundedRect
}
}
}
UITextField
durchBigTextField
.Border Style
in none
.Mein erbärmlicher Beitrag zu diesem dummen Problem. Setzen Sie in IB den Stil auf none, damit Sie die Höhe festlegen können, und setzen Sie in IB die Klasse auf eine Unterklasse UITextField
, die erzwingt, dass der Stil gerade gerundet wird.
@interface JLTForcedRoundedRectTextField : UITextField
@end
@implementation JLTForcedRoundedRectTextField
- (void)awakeFromNib
{
self.borderStyle = UITextBorderStyleRoundedRect;
}
@end
Es hat mich davon abgehalten, die XIB-Datei zu hacken oder Stilcode in meinen View Controller zu schreiben.
Die Höhe eines UITextFields kann im Attributinspektor nicht nur angepasst werden, wenn es den Standardrahmenstil für abgerundete Ecken aufweist, sondern es wird eine Höhenbeschränkung (plus alle anderen Einschränkungen, die erforderlich sind, um das Autolayout-System zu erfüllen - häufig durch einfaches Hinzufügen fehlender Einschränkungen hinzufügen) und hinzugefügt Durch Anpassen der Einschränkung wird die Höhe des Textfelds angepasst. Wenn Sie keine Einschränkungen wünschen, können die Einschränkungen entfernt werden (Einschränkungen löschen) und das Textfeld bleibt auf der angepassten Höhe.
Klappt wunderbar.
UITextField *txt = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
[txt setText:@"Ananth"];
[self.view addSubview:txt];
Die letzten beiden Argumente sind Breite und Höhe. Sie können einstellen, wie Sie möchten ...
Sie können die Rahmeneigenschaft des Textfelds verwenden, um den Rahmen zu ändern. Like-Textfield.frame = CGRECTMake (x-Achse, y-Achse, Breite, Höhe)
Das ist ganz einfach.
yourtextfield.frame = CGRectMake (yourXAxis, yourYAxis, yourWidth, yourHeight);
Deklarieren Sie Ihr Textfeld als gloabale Eigenschaft und ändern Sie den Rahmen, wo immer Sie dies in Ihrem Code tun möchten.
Viel Spaß beim Codieren!
Wenn Sie viel UITextFields
davon erstellen, können Sie schneller Unterklassen UITextView
s erstellen und die setFrame-Methode mit überschreiben
-(void)setFrame:(CGRect)frame{
[self setBorderStyle:UITextBorderStyleRoundedRect];
[super setFrame:frame];
[self setBorderStyle:UITextBorderStyleNone];
}
Auf diese Weise können Sie einfach anrufen
[customTextField setFrame:<rect>];