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

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

18 ответов


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

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

enter image description here


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

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

textField.borderStyle = UITextBorderStyleRoundedRect;

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

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

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

enter image description here

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

enter image description here

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

enter image description here


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

enter image description here

  1. установить высоту

enter image description here

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

yourUITextField.borderStyle = UITextBorderStyleRoundedRect;

enter image description here

  1. наслаждайтесь круглый и высокий UITextField

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

enter image description here

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

enter image description here

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

textField.borderStyle = UITextBorderStyleRoundedRect;

Swift 3:

textField.borderStyle = UITextBorderStyle.roundedRect

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

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

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

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


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

кроме того, если вы устанавливаете высоту кадра по коду, auto-layout может сбросить его в зависимости от других ограничений, которые может иметь ваш вид.


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


swift3

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

Интерфейс Построителя

  • заменить UITextField С BigTextField.
  • изменить Border Style к none.

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

@interface JLTForcedRoundedRectTextField : UITextField
@end

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

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


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

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

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

Удачи В Кодировании!


попробуй такое

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

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

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


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


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

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

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


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

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


в Swift 3 Используйте:

yourTextField.frame.size.height = 30