Відповіді:
CGRect frameRect = textField.frame;
frameRect.size.height = 100; // <-- Specify the height you want here.
textField.frame = frameRect;
Ви не можете змінити висоту стилю округлої прямої рамки. Щоб встановити висоту, просто виберіть будь-який стиль рамки, окрім округлої рамки в Xcode:
Я нарешті знайшов виправлення для цього!
Як ми з’ясували, IB не дозволяє нам змінювати висоту стилю окантованого кута. Тому змініть його на будь-який з інших стилів і встановіть потрібну висоту. У коді змініть стиль межі назад.
textField.borderStyle = UITextBorderStyleRoundedRect;
viewWillLayoutSubviews
. Я додав зображення до leftView
текстового поля та деякого тексту, і коли це робиться, viewDidLoad
вони обоє дивно розтягуються.
textField.borderStyle = .RoundedRect
Якщо ви використовуєте автоматичний макет, ви можете зробити це на дошці Story.
Додайте обмеження висоти в текстове поле, а потім змініть константу обмеження висоти на будь-яке бажане значення. Кроки показані нижче:
Крок 1: Створіть обмеження висоти для текстового поля
Крок 2: Виберіть обмеження висоти
Крок 3: Змінення постійного значення обмеження висоти
borderStyle
усе, крім округленого. Використовуйте, Editor -> Size to Fit Content
щоб макет робив свою справу. Використовуйте інспектор нерухомості на своєму, UITextField
щоб перевірити його висоту. Використовуйте це, щоб встановити обмеження висоти, і тепер ви можете змінити borderStyle
спинку на округлу.
1.) Змініть стиль межі в InterfaceBuilder.
2.) Після цього ви можете змінити розмір.
3.) Створіть IBOutlet у своєму TextField та введіть у свій код наступний код, viewDidLoad()
щоб змінити BorderStyle назад.
textField.borderStyle = UITextBorderStyleRoundedRect;
Швидкий 3:
textField.borderStyle = UITextBorderStyle.roundedRect
на ваш поглядWillAppear встановить кути як круглі
yourUITextField.borderStyle = UITextBorderStyleRoundedRect;
Виконайте ці два простих кроки і отримайте збільшення висоти свого UItextField
.
Крок 1: клацніть правою кнопкою миші файл XIB і відкрийте його, як у "вихідному коді".
Крок 2: Знайдіть те саме UITextfield
джерело і встановіть кадр так, як вам потрібно.
Ви можете скористатися цими кроками для зміни кадру будь-яких елементів управління яблуком.
Оновлення для iOS 6: використовуючи автоматичну компоновку, навіть якщо ви все ще не можете встановити висоту UITextField від інспектора розміру в Builder інтерфейсу (як мінімум для Xcode 4.5 DP4), тепер можна встановити обмеження висоти на це, яке ви можете редагувати у програмі Interface Builder.
Крім того, якщо ви встановлюєте висоту кадру за кодом, автоматична компонування може скинути її залежно від інших обмежень, які може мати ваш погляд.
Я знаю це старе питання, але я просто хотів додати, якщо ви хочете легко змінити висоту UITextField зсередини IB, а потім просто змінити тип межі UITextfield на будь-що інше, ніж тип закругленого кута за замовчуванням. Тоді ви можете легко розтягнути або змінити атрибути висоти зсередини редактора.
@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 або код стилю написання в моєму контролері перегляду.
Висота UITextField не може регулюватися в інспекторі атрибутів лише тоді, коли він має стиль закруглених кутів за замовчуванням, але додає обмеження по висоті (плюс будь-які інші обмеження, необхідні для задоволення системи автоматичного вимикання - часто шляхом простого додавання до нього відсутніх обмежень) та регулювання обмеження регулює висоту текстового поля. Якщо ви не хочете обмежень, обмеження можна буде видалити (Очистити обмеження), а текстове поле залишиться на заданій висоті.
Працює як шарм.
UITextField *txt = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
[txt setText:@"Ananth"];
[self.view addSubview:txt];
Останні два аргументи - ширина і висота. Ви можете встановити, як хочете ...
Ви можете використовувати властивість кадру текстового поля, щоб змінити кадр Like-Textfield.frame = CGRECTMake (вісь x, вісь y, ширина, висота)
Це досить просто.
yourtextfield.frame = CGRectMake (yourXAxis, yourYAxis, yourWidth, yourHeight);
Задекларуйте своє текстове поле як властивість gloabal і змініть його кадр там, де ви хочете це зробити у своєму коді.
Щасливе кодування!
Якщо ви створюєте багато, UITextFields
це може бути швидше підклас UITextView
s і замінити метод setFrame
-(void)setFrame:(CGRect)frame{
[self setBorderStyle:UITextBorderStyleRoundedRect];
[super setFrame:frame];
[self setBorderStyle:UITextBorderStyleNone];
}
Таким чином можна просто зателефонувати
[customTextField setFrame:<rect>];