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

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

Ответы [ 19 ]

200 голосов
/ 25 сентября 2013

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

enter image description here

150 голосов
/ 27 октября 2012

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

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

textField.borderStyle = UITextBorderStyleRoundedRect;
83 голосов
/ 27 апреля 2013

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

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

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

enter image description here

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

enter image description here

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

enter image description here

80 голосов
/ 27 декабря 2011
CGRect frameRect = textField.frame;
frameRect.size.height = 100; // <-- Specify the height you want here.
textField.frame = frameRect;
26 голосов
/ 25 сентября 2015
  1. Выберите стиль рамки как не округленный

enter image description here

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

enter image description here

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

yourUITextField.borderStyle = UITextBorderStyleRoundedRect;

enter image description here

Наслаждайтесь своим круглым и высоким UITextField
25 голосов
/ 29 апреля 2016

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
14 голосов
/ 13 декабря 2012

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

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

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

Вы можете использовать эти шаги, чтобы изменить рамку любого элемента управления Apple.

8 голосов
/ 08 августа 2012

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

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

6 голосов
/ 03 октября 2012

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

4 голосов
/ 06 декабря 2016

swift3

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

Интерфейсный конструктор

  • Заменить UITextField на BigTextField.
  • Измените Border Style на none.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...