如何制作更圆润的UITextField?就像iPad上Safari中的搜索字段一样

时间:2010-08-19 08:42:43

标签: iphone uikit uitextfield uisearchbar

我正试图让UITextField看起来像iPad上的safari应用程序中提供的谷歌搜索字段。该字段的目的是相同的(搜索框)。

我知道我可以使用UISearchBar,但我必须使用hackish代码来摆脱放大镜图标和背景,我不希望这样。

我正在使用Apple使用的TextField作为搜索框附加图像。如何修改UITextField以使其外观和行为类似于此屏幕截图中的搜索字段? alt text

我试图修改UITextField的图层roundedCorners属性,但这不能按预期工作。

非常感谢任何帮助!

谢谢!

5 个答案:

答案 0 :(得分:17)

您可以在任何UIView-Subclass上设置Corner-Radius。

  1. 将QuartzCore.framework添加到项目中
  2. 在您的UIViewController子类中添加#import <QuartzCore/QuartzCore.h>(您可以在其中访问您选择的UITextfield实例)
  3. 在viewDidLoad / viewWillAppear中(或者您的UITextfield已经实例化的任何其他地方,请致电[yourTextField.layer setCornerRadius:14.0f];
  4. 使用cornerRadius值,直到看起来不错

答案 1 :(得分:10)

使用以下代码。它适用于我:

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];

答案 2 :(得分:3)

将UITextField的背景属性设置为适当的图像,如下所示: alt text

答案 3 :(得分:0)

为什么不尝试制作所需输入字段的单独图像并将其置于真正的textField控件下。但是,您必须操纵所放置的textField的颜色才能使其透明。

答案 4 :(得分:-4)

使用带有所需圆角的图形,然后将文本视图放在顶部。