it-swarm.com.ru

Как установить высоту UITextField?

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

123
Arun
CGRect frameRect = textField.frame;
frameRect.size.height = 100; // <-- Specify the height you want here.
textField.frame = frameRect;
80
Manjunath

Вы не можете изменить высоту стиля прямоугольника с закругленными углами. Чтобы установить высоту, просто выберите любой стиль рамки, кроме скругленной границы в XCode:

enter image description here

200
Brian

Я наконец нашел решение для этого!

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

textField.borderStyle = UITextBorderStyleRoundedRect;
149
nathanbroyles

Если вы используете Auto Layout, вы можете сделать это на доске историй.

Добавьте ограничение высоты в текстовое поле, затем измените константу ограничения высоты на любое желаемое значение. Шаги показаны ниже:

Шаг 1: создайте ограничение высоты для текстового поля

enter image description here

Шаг 2: Выберите ограничение по высоте

enter image description here

Шаг 3: Изменить константу ограничения высоты

enter image description here

83
user1046037
  1. Выберите стиль границы как не округленный

enter image description here

  1. Установите свой рост

enter image description here

по вашему мнениюWillAppear установить углы как круглые

yourUITextField.borderStyle = UITextBorderStyleRoundedRect;

enter image description here

  1. Наслаждайтесь своим круглым и высоким UITextField
26
Deprecated Darren

1.) Изменить стиль границы в InterfaceBuilder.

enter image description here

2.) После этого вы можете изменить размер.

enter image description here

3.) Создайте IBOutlet для вашего TextField и введите следующий код в вашу viewDidLoad(), чтобы изменить BorderStyle обратно.

textField.borderStyle = UITextBorderStyleRoundedRect;

Swift 3:

textField.borderStyle = UITextBorderStyle.roundedRect
25
David Seek

Выполните эти два простых шага и увеличьте высоту своего UItextField.

Шаг 1: щелкните правой кнопкой мыши файл XIB и откройте его, как в "Исходном коде".

Шаг 2: Найдите тот же источник UITextfield и установите кадр так, как вы хотите.

Вы можете использовать эти шаги для изменения фрейма любых элементов управления Apple.

14
Sunil Targe

Обновление для iOS 6: с помощью автоматического макета, даже если вы все еще не можете установить высоту UITextField из инспектора размера в Интерфейсном Разработчике (по крайней мере, с Xcode 4.5 DP4), теперь можно установить ограничение высоты на это, которое вы можете редактировать из Interface Builder.

Кроме того, если вы устанавливаете высоту фрейма с помощью кода, автоматическое расположение может сбрасывать его в зависимости от других ограничений, которые может иметь ваш вид.

8
Guillaume Laurent

Я знаю, что это старый вопрос, но я просто хотел бы добавить, если вы хотите легко изменить высоту UITextField изнутри IB, а затем просто изменить тип границы этого UITextfield на любой другой, чем тип округленного угла по умолчанию. Затем вы можете легко растянуть или изменить атрибуты высоты изнутри редактора.

6
Mark McCorkle

Swift3

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

Интерфейсный Разработчик

  • Замените UITextField на BigTextField.
  • Измените Border Style на none.
4
neoneye

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

@interface JLTForcedRoundedRectTextField : UITextField
@end

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

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

3
Jeffery Thomas

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

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

2
Simon.

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

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

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

Удачного кодирования!

2
Valentina

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

yourTextField.frame.size.height = 30
2
Kaptain

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

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

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

1
mylogon

попробуй это

UITextField *field = [[UITextField alloc] initWithFrame:CGRectMake(20, 80, 280, 120)];
1
Tendulkar

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

1
Harshit_Jobs
UITextField *txt = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    [txt setText:@"Ananth"];
    [self.view addSubview:txt];

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

1
User-1070892

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

0
Alix