2011-02-23 79 views

回答

20

您可能想要使用UITextFieldbackgroundborderStyle屬性。將borderStyle設置爲UITextBorderStyleNone,然後創建一個自定義背景圖像作爲background屬性將被拉伸和使用。

我建議看看UITextField class reference中的那些屬性。

2

只是使用下面的行,它應該工作

textfield_name.background = [UIImage的imageNamed:@ 「yourImage.png」];

這裏,「yourImage」是你想設置背景圖片...

然而,這將只工作,如果你的心不是按鈕,一個ROUNDRECT button.So,您可以更改按鈕的類型界面生成器,也可以使用

textfield_name.borderstyle = UITextBorderStyleNone或UITextBorderStyleBezel

和你[R gud2go ....!

2

以uiimageview將其圖像屬性設置爲您想要的圖像作爲uitextfield背景。在這個uiimageview的頂部放置一個uitextfield,並且邊框沒有。這可以直接在界面構建器中完成。如分爲三個部分

UIImage *fieldBGImage = [[UIImage imageNamed:@"input.png"] stretchableImageWithLeftCapWidth:20 topCapHeight:20]; 
    [myUITextField setBackground:fieldBGImage]; 

認爲文本字段的背景:

30

這是可以做到更好和更簡單的可拉伸的圖像。一箇中間部分,可以拉伸並蓋在兩端。創建一個只需要足夠長的圖像以包含此重複部分的一個像素(一個非常短的文本字段),然後使用stretchableImageWithLeftCapWidth: topCapHeight創建一個可伸縮圖像。將左端帽的寬度傳入「leftCapWidth」。你也可以使它垂直拉伸,但是如果你的背景圖像與你的文本框高度相同,它就不會有效果。

如果您熟悉Flash或Illustrator中的9切片縮放,它的概念完全相同,除了中間部分只有一個像素寬/高。

這樣做的好處是您不必擔心多個分層對象一起縮放,您可以隨時調整文本字段的大小,並保持背景的完整性。它也適用於其他元素!

+0

對我表示感謝。 – 2013-04-24 18:38:38

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

您也可以通過這樣做界面生成器。

Through Interface Builder