Jak ustawić wysokość UITextField?

Używam UITextField. Chcę zwiększyć jego wysokość, ale nie znalazłem żadnej nieruchomości, aby to zrobić. Jak mogę to osiągnąć?

Author: Marcus Leon, 2011-12-27

18 answers

CGRect frameRect = textField.frame;
frameRect.size.height = 100; // <-- Specify the height you want here.
textField.frame = frameRect;
 74
Author: Manjunath,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-06 16:32:36

Nie można zmienić wysokości zaokrąglonego stylu obramowania rect. Aby ustawić wysokość, po prostu wybierz dowolny styl obramowania inny niż zaokrąglone obramowanie w Xcode:

Tutaj wpisz opis obrazka

 191
Author: Brian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-25 10:20:51

W końcu znalazłem na to rozwiązanie!

Jak odkryliśmy, IB nie pozwala nam zmienić wysokości zaokrąglonego narożnika stylu obramowania. Więc zmień go na dowolny z innych stylów i ustaw żądaną wysokość. W kodzie Zmień styl obramowania z powrotem.

textField.borderStyle = UITextBorderStyleRoundedRect;
 146
Author: nathanbroyles,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-27 04:24:37

Jeśli używasz układu automatycznego, możesz to zrobić na tablicy wątku.

Dodaj ograniczenie wysokości do pola tekstowego, a następnie zmień stałą ograniczenia wysokości na dowolną pożądaną wartość. Kroki są pokazane poniżej:

Krok 1: Utwórz ograniczenie wysokości dla pola tekstowego

Tutaj wpisz opis obrazka

Krok 2: Wybierz Ograniczenie Wysokości

Tutaj wpisz opis obrazka

Krok 3: zmiana wartości stałej ograniczenia wysokości

Tutaj wpisz opis obrazka

 82
Author: user1046037,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-27 11:54:26
  1. Wybierz styl obramowania jako nie zaokrąglony

Tutaj wpisz opis obrazka

  1. Ustaw swój wzrost

Tutaj wpisz opis obrazka

W twoim widoku Ustaw rogi jako okrągłe

yourUITextField.borderStyle = UITextBorderStyleRoundedRect;

Tutaj wpisz opis obrazka

    Ciesz się swoim okrągłym i wysokim UITextField]}
 26
Author: Deprecated Darren,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-24 22:07:39

1.) Zmień styl obramowania w interfejsie.

Tutaj wpisz opis obrazka

2.) Po tym możesz zmienić rozmiar.

Tutaj wpisz opis obrazka

3.) Utwórz IBOutlet do pola tekstowego i wprowadź następujący kod do viewDidLoad(), aby zmienić styl obramowania z powrotem.

textField.borderStyle = UITextBorderStyleRoundedRect;

Swift 3:

textField.borderStyle = UITextBorderStyle.roundedRect
 20
Author: David Seek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-14 14:12:23

Wykonaj te dwa proste kroki i uzyskać wzrost wysokości UItextField.

Krok 1: Kliknij prawym przyciskiem myszy plik XIB i otwórz go jak w "kod źródłowy".

Krok 2: Znajdź to samo źródło UITextfield i ustaw ramkę tak, jak chcesz.

Możesz użyć tych kroków, aby zmienić ramkę dowolnych kontrolek apple.

 14
Author: Sunil Targe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-10 13:35:08

Aktualizacja dla iOS 6: za pomocą auto-układ, nawet jeśli nadal nie można ustawić wysokości UITextField z Inspektora rozmiaru w budownictwie interfejsu (od Xcode 4.5 DP4 co najmniej), to jest teraz możliwe, aby ustawić ograniczenie wysokości na nim, które można edytować z konstruktora interfejsu.

Ponadto, jeśli ustawiasz wysokość ramki za pomocą kodu, układ automatyczny może ją zresetować w zależności od innych ograniczeń, jakie może mieć widok.

 8
Author: Guillaume Laurent,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-08 12:56:18

Wiem, że to stare pytanie, ale chciałem tylko dodać, jeśli chcesz łatwo zmienić wysokość UITextField z wnętrza IB, to po prostu zmień typ obramowania UITextfield na inny niż domyślny zaokrąglony narożnik. Następnie możesz łatwo rozciągać lub zmieniać atrybuty wysokości z poziomu edytora.

 6
Author: Mark McCorkle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-03 17:33:39

Swift3

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

Interface Builder

  • Zastąp UITextField na BigTextField.
  • Zmień Border Style do none.
 4
Author: neoneye,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-06 11:34:21

Mój żałosny wkład w ten głupi problem. W IB Ustaw styl na none, aby można było ustawić wysokość, a następnie w IB Ustaw klasę jako podklasę UITextField, która wymusza zaokrąglenie stylu rect.

@interface JLTForcedRoundedRectTextField : UITextField
@end

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

Powstrzymało mnie to przed hakowaniem pliku XIB lub zapisywaniem kodu stylu do kontrolera widoku.

 3
Author: Jeffery Thomas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-13 19:16:57

To dość proste.

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

Zadeklaruj pole tekstowe jako właściwość gloabal i zmień jego ramkę w dowolnym miejscu w kodzie.

Szczęśliwego Kodowania!
 2
Author: Valentina,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-11 13:35:13

Spróbuj tego

UITextField *field = [[UITextField alloc] initWithFrame:CGRectMake(20, 80, 280, 120)];
 1
Author: Tendulkar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-27 05:45:57
UITextField *txt = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    [txt setText:@"Ananth"];
    [self.view addSubview:txt];

Ostatnie dwa argumenty to szerokość i wysokość, możesz ustawić jak chcesz...

 1
Author: User-1070892,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-27 07:36:21

Możesz użyć właściwości frame of textfield aby zmienić ramkę Jak-Textfield.frame=cgrectmake (oś x,oś y,szerokość,wysokość)

 1
Author: Harshit_Jobs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-05 11:42:53

Jeśli tworzysz dużo UITextFields może być szybsze podklasowanie UITextView s I nadpisanie metody setFrame za pomocą

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

W ten sposób możesz po prostu zadzwonić
[customTextField setFrame:<rect>];

 1
Author: mylogon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-30 15:27:10

Wysokość Uitextfielda nie jest regulowana tylko w atrybutach gdy ma domyślny styl obramowania zaokrąglonych rogów, ale dodaje ograniczenie wysokości (plus wszelkie inne ograniczenia, które są wymagane do system autolayout-często wystarczy użyć Add Missing Ograniczeń) do niego i dostosowanie ograniczenia spowoduje dostosowanie wysokość textfielda. Jeśli nie chcesz ograniczeń, ograniczenia mogą zostać usunięte (wyraźne ograniczenia), a pole tekstowe pozostanie na na regulowana wysokość.

Działa jak urok.
 1
Author: Simon.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-07 09:08:28

W języku Swift 3 Użyj:

yourTextField.frame.size.height = 30
 1
Author: Kaptain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-09 14:05:45