Подтвердить что ты не робот

Пользовательский UITextField

Как я могу создать UITextField как тот, что на этом изображении?

enter image description here

Он немного больше, особенно в высоту.

4b9b3361

Ответ 1

Вероятно, вы хотите использовать свойства background и borderStyle UITextField. Установка borderStyle в качестве UITextBorderStyleNone и создание настраиваемого фонового изображения, которое должно растягиваться и использоваться как свойство background, будет одним из подходов.

Я предлагаю взглянуть на эти свойства в ссылке на класс UITextField.

Ответ 2

Это можно сделать намного лучше и проще с растяжимым изображением:

    UIImage *fieldBGImage = [[UIImage imageNamed:@"input.png"] stretchableImageWithLeftCapWidth:20 topCapHeight:20];
    [myUITextField setBackground:fieldBGImage];

Подумайте о фоне текстового поля, разбитого на три части. Средняя часть, которая может быть растянута, и колпачки на концах. Создайте образ, который должен быть достаточно длинным, чтобы содержать один пиксель этого повторяющегося раздела (очень короткое текстовое поле), а затем создавать растягиваемое изображение из него с помощью stretchableImageWithLeftCapWidth: topCapHeight. Пропустите ширину левого торцевого колпачка в 'leftCapWidth.' Вы также можете растянуть его вертикально, но если фоновое изображение имеет ту же высоту, что и текстовое поле, оно не будет иметь эффекта.

Если вы знакомы с 9-срезным масштабированием во Flash или Illustrator, это точно такое же понятие, за исключением того, что средние разделы имеют только один пиксель в ширину/высокий.

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

Ответ 3

Вы можете сделать это:

yourTextField.borderStyle = UITextBorderStyleNone;

yourTextField.background = [UIImage imageNamed:@"email-input.png"];

И если вы хотите отдать свой текст в текстовое поле, вы можете сделать это:

// Setting Text Field Margins to display the user entered text Properly

UIView *paddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 20)];

yourTextField.leftView = paddingView;
yourTextField.leftViewMode = UITextFieldViewModeAlways;

Ответ 4

Вы также можете сделать это через Interface Builder.

Through Interface Builder

Ответ 5

просто используйте следующую строку, и она должна работать

textfield_name.background = [UIImage imageNamed: @ "yourImage.png" ];

здесь, "yourImage" - фоновое изображение, которое вы хотите установить...

однако это будет работать, только если ваша кнопка не является кнопкой roundrect. Таким образом, вы можете изменить тип кнопки в построителе интерфейса или использовать

textfield_name.borderstyle = UITextBorderStyleNone или UITextBorderStyleBezel

и вы r gud2go....!

Ответ 6

Возьмите uiimageview, чтобы установить его свойство изображения в изображение, которое вы хотите как фон uitextfield. И поверх этого uiimageview поместите uitextfield с borderstyle none. Это можно сделать непосредственно в построителе интерфейса.