Как установить высоту UITextField? - PullRequest
125 голосов
/ 27 декабря 2011

Я использую UITextField. Я хочу увеличить его высоту, но я не нашел никакого свойства, чтобы сделать это. Как мне этого добиться?

Ответы [ 19 ]

3 голосов
/ 13 сентября 2013

Мой жалкий вклад в эту глупую проблему.В IB установите стиль на none, чтобы вы могли установить высоту, затем в IB установите класс как подкласс UITextField, который заставляет стиль быть округленным прямоугольником.

@interface JLTForcedRoundedRectTextField : UITextField
@end

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

Это удержало меня отнеобходимость взломать файл XIB или записать код стиля в мой контроллер представления.

2 голосов
/ 07 сентября 2017

Высота UITextField не регулируется только в Инспекторе атрибутов когда он имеет стиль границы по умолчанию скругленных углов, но добавляя ограничение по высоте (плюс любые другие ограничения, которые требуются для удовлетворить систему автоматического размещения - часто просто используя Add Missing Ограничения) к нему и корректировка ограничения будет регулировать высота текстового поля. Если вы не хотите ограничений, ограничения могут будут удалены (Очистить ограничения), и текстовое поле останется на отрегулированная высота.

Работает как шарм.

2 голосов
/ 09 января 2018

В Swift 3 используйте:

yourTextField.frame.size.height = 30
2 голосов
/ 11 февраля 2015

Это довольно просто.

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

Объявите ваше текстовое поле как глобальное свойство и измените его фрейм, где бы вы ни захотели сделать это в своем коде.

Счастливого кодирования!

1 голос
/ 27 декабря 2011
UITextField *txt = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    [txt setText:@"Ananth"];
    [self.view addSubview:txt];

Последние два аргумента: ширина и высота, вы можете установить, как хотите ...

1 голос
/ 30 января 2016

Если вы создаете много UITextFields, может быть быстрее создать подкласс UITextView s и переопределить метод setFrame с помощью

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

Таким образом, вы можете просто позвонить
[customTextField setFrame:<rect>];

1 голос
/ 05 февраля 2014

Вы можете использовать свойство frame текстового поля для изменения кадра Like-Textfield.frame = CGRECTMake (ось x, ось y, ширина, высота)

1 голос
/ 27 декабря 2011

попробуйте

UITextField *field = [[UITextField alloc] initWithFrame:CGRectMake(20, 80, 280, 120)];
0 голосов
/ 23 марта 2019

У меня была такая же проблема. попробовал некоторые из решений здесь, но вместо того, чтобы делать все это тупик. Я обнаружил, что достаточно просто установить ограничение по высоте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...