如何创建与此图片中的UITextField
类似的文件?
它看起来略大,特别是高度。
答案 0 :(得分:30)
使用可伸缩图像可以做得更好更简单:
UIImage *fieldBGImage = [[UIImage imageNamed:@"input.png"] stretchableImageWithLeftCapWidth:20 topCapHeight:20];
[myUITextField setBackground:fieldBGImage];
将文本字段的背景视为分为三个部分。一个中间部分,可以拉伸和盖在两端。创建一个只需要足够长的图像来包含此重复部分的一个像素(一个非常短的文本字段),然后使用stretchableImageWithLeftCapWidth: topCapHeight
从中创建一个可伸缩的图像。将左端盖的宽度传递给'leftCapWidth'。您也可以将其垂直拉伸,但如果您的背景图像与文本框的高度相同,则不会产生影响。
如果您熟悉Flash或Illustrator中的9切片缩放,那么它的概念完全相同,只是中间部分只有一个像素宽/高。
这样做的好处是您不必担心多个分层对象一起缩放,您可以随时调整文本字段的大小,并保持背景。它也适用于其他元素!
答案 1 :(得分:20)
您可能希望使用background
的{{1}}和borderStyle
属性。将UITextField
设置为borderStyle
并创建要拉伸并用作UITextBorderStyleNone
属性的自定义背景图像将是一种方法。
我建议您查看UITextField class reference中的这些属性。
答案 2 :(得分:17)
您可以通过以下方式执行此操作:
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;
答案 3 :(得分:7)
您也可以通过Interface Builder执行此操作。
答案 4 :(得分:2)
只需使用以下行,它就可以正常工作
textfield_name.background = [UIImage imageNamed:@“yourImage.png”];
这里,“yourImage”是你要设置的背景图片......
但是,只有当您的按钮不是圆形按钮时才会起作用。因此,您可以在界面生成器中更改按钮的类型,或者可以使用
textfield_name.borderstyle = UITextBorderStyleNone或UITextBorderStyleBezel
你和gud2go ....!
答案 5 :(得分:2)
将uiimageview的图像属性设置为uitextfield背景所需的图像。在这个uiimageview的顶部放置一个带bordertyle的uitextfield。您可以直接在界面构建器中执行此操作。