我正试图让UITextField看起来像iPad上的safari应用程序中提供的谷歌搜索字段。该字段的目的是相同的(搜索框)。
我知道我可以使用UISearchBar,但我必须使用hackish代码来摆脱放大镜图标和背景,我不希望这样。
我正在使用Apple使用的TextField作为搜索框附加图像。如何修改UITextField以使其外观和行为类似于此屏幕截图中的搜索字段?
我试图修改UITextField的图层roundedCorners属性,但这不能按预期工作。
非常感谢任何帮助!
谢谢!
答案 0 :(得分:17)
您可以在任何UIView-Subclass上设置Corner-Radius。
#import <QuartzCore/QuartzCore.h>
(您可以在其中访问您选择的UITextfield实例)[yourTextField.layer setCornerRadius:14.0f];
答案 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的背景属性设置为适当的图像,如下所示:
答案 3 :(得分:0)
为什么不尝试制作所需输入字段的单独图像并将其置于真正的textField控件下。但是,您必须操纵所放置的textField的颜色才能使其透明。
答案 4 :(得分:-4)
使用带有所需圆角的图形,然后将文本视图放在顶部。