Как я могу сделать более округлый UITextField?Как поле поиска в Safari на iPad - PullRequest
9 голосов
/ 19 августа 2010

HI Я пытаюсь заставить UITextField выглядеть как поле поиска google, доступное в приложении safari на iPad. Назначение поля будет таким же (окно поиска).

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

Я прилагаю изображение с TextField, используемым Apple в качестве окна поиска. Как я могу изменить UITextField, чтобы он выглядел и вел себя как поле поиска на этом скриншоте? alt text

Я попытался модифицировать свойство roundedCorners слоя UITextField, но это не работает должным образом.

Любая помощь очень ценится!

Спасибо!

Ответы [ 5 ]

17 голосов
/ 19 августа 2010

Вы можете установить Угловой радиус в любом подклассе UIView.

  1. Добавьте QuartzCore.framework в свой проект
  2. , добавьте #import <QuartzCore/QuartzCore.h> в свой подкласс UIViewController (где выиметь доступ к выбранному вами экземпляру UITextfield
  3. в пределах viewDidLoad / viewWillAppear (или в любом другом месте, где ваше поле UIText уже готово к вызову [yourTextField.layer setCornerRadius:14.0f];
  4. , поиграйтесь со значением cornerRadius, пока оно не будет выглядеть хорошо
10 голосов
/ 03 августа 2012

Используйте приведенный ниже код. Это работает для меня:

searchField= [[UITextField alloc] initWithFrame:CGRectMake(0,0,150,31)];
searchField.delegate = self;
searchField.autoresizingMask = UIViewAutoresizingFlexibleWidth;
searchField.textColor = [UIColor colorWithRed:102.0/255 green:102.0/255 blue:102.0/255 alpha:1.0];
searchField.textAlignment = UITextAlignmentLeft;
searchField.font = [UIFont fontWithName:@"Helvetica" size:15];
searchField.autocorrectionType = UITextAutocorrectionTypeNo;
searchField.contentVerticalAlignment =UIControlContentVerticalAlignmentCenter;
searchField.clearsOnBeginEditing = NO;
searchField.autocapitalizationType = UITextAutocapitalizationTypeNone;
searchField.autocorrectionType = UITextAutocorrectionTypeNo;
searchField.keyboardType = UIKeyboardTypeURL;
searchField.returnKeyType = UIReturnKeySearch;        
searchField.clearButtonMode = UITextFieldViewModeWhileEditing;
searchField.rightViewMode = UITextFieldViewModeUnlessEditing;
searchField.layer.cornerRadius = 17;
searchField.placeholder=@"Google Search";
searchField.borderStyle = UITextBorderStyleRoundedRect;//To change borders to rounded
searchField.layer.borderWidth = 1.0f; //To hide the square corners 
searchField.layer.borderColor = [[UIColor grayColor] CGColor]; //assigning the default border color
UIBarButtonItem *searchFieldItem = [[UIBarButtonItem alloc] initWithCustomView:searchField];
3 голосов
/ 18 декабря 2010

Установите для свойства background UITextField соответствующее изображение, например: alt text

0 голосов
/ 19 августа 2010

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

0 голосов
/ 19 августа 2010

Используйте графику с закругленными краями, которые вы хотите, а затем расположите текстовое представление сверху.

...