Как я могу создать UITextField
как тот, что на этом изображении?
Он немного больше, особенно в высоту.
Как я могу создать UITextField
как тот, что на этом изображении?
Он немного больше, особенно в высоту.
Вероятно, вы хотите использовать свойства background
и borderStyle
UITextField
. Установка borderStyle
в качестве UITextBorderStyleNone
и создание настраиваемого фонового изображения, которое должно растягиваться и использоваться как свойство background
, будет одним из подходов.
Я предлагаю взглянуть на эти свойства в ссылке на класс UITextField.
Это можно сделать намного лучше и проще с растяжимым изображением:
UIImage *fieldBGImage = [[UIImage imageNamed:@"input.png"] stretchableImageWithLeftCapWidth:20 topCapHeight:20];
[myUITextField setBackground:fieldBGImage];
Подумайте о фоне текстового поля, разбитого на три части. Средняя часть, которая может быть растянута, и колпачки на концах. Создайте образ, который должен быть достаточно длинным, чтобы содержать один пиксель этого повторяющегося раздела (очень короткое текстовое поле), а затем создавать растягиваемое изображение из него с помощью stretchableImageWithLeftCapWidth: topCapHeight
. Пропустите ширину левого торцевого колпачка в 'leftCapWidth.' Вы также можете растянуть его вертикально, но если фоновое изображение имеет ту же высоту, что и текстовое поле, оно не будет иметь эффекта.
Если вы знакомы с 9-срезным масштабированием во Flash или Illustrator, это точно такое же понятие, за исключением того, что средние разделы имеют только один пиксель в ширину/высокий.
Преимущество этого заключается в том, что вам не нужно беспокоиться о масштабировании нескольких многоуровневых объектов, и вы можете изменить размер текстовых полей в любое время, и фон останется в такте. Он также работает и с другими элементами.
Вы можете сделать это:
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;
Вы также можете сделать это через Interface Builder.
просто используйте следующую строку, и она должна работать
textfield_name.background = [UIImage imageNamed: @ "yourImage.png" ];
здесь, "yourImage" - фоновое изображение, которое вы хотите установить...
однако это будет работать, только если ваша кнопка не является кнопкой roundrect. Таким образом, вы можете изменить тип кнопки в построителе интерфейса или использовать
textfield_name.borderstyle = UITextBorderStyleNone или UITextBorderStyleBezel
и вы r gud2go....!
Возьмите uiimageview, чтобы установить его свойство изображения в изображение, которое вы хотите как фон uitextfield. И поверх этого uiimageview поместите uitextfield с borderstyle none. Это можно сделать непосредственно в построителе интерфейса.