2011-02-23 15 views
20

मैं इस छवि में से किसी एक की तरह UITextField बनाने के बारे में कैसे जाऊं?कस्टम UITextField

enter image description here

यह थोड़ा बड़ा होने के लिए विशेष रूप से ऊंचाई में दिखाई देता है।

उत्तर

20

शायद आप और borderStyleUITextField के गुणों का उपयोग करना चाहते हैं। borderStyleUITextBorderStyleNone के रूप में सेट करना और background संपत्ति के रूप में उपयोग की जाने वाली कस्टम पृष्ठभूमि छवि बनाएं और संपत्ति एक दृष्टिकोण होगी।

मैं सुझाव देता हूं कि UITextField class reference में उन गुणों को देखें।

2

सिर्फ निम्न पंक्ति का उपयोग करें और यह काम करना चाहिए

textfield_name.background = [UIImage imageNamed: @ "yourImage.png"];

यहाँ

, "yourImage" आप सेट करना चाहते हैं पृष्ठभूमि छवि है ...

तथापि, यह कार्य तभी अपने बटन एक roundrect button.So नहीं है काम करेंगे, तो आप में बटन के प्रकार बदल सकते हैं इंटरफ़ेस बिल्डर या आप

उपयोग कर सकते हैं textfield_name.borderstyle = UITextBorderStyleNone या UITextBorderStyleBezel

और आप gud2go r ....!

2

एक uiimageview अपनी छवि प्रॉपर्टी को उस छवि पर सेट करें जिसे आप uitextfield पृष्ठभूमि के रूप में चाहते हैं। और इस uiimageview के शीर्ष पर सीमा रेखा के साथ एक uitextfield जगह है। यह आप इंटरफेस बिल्डर में सीधे कर सकते हैं। के रूप में तीन वर्गों में विभाजित

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

पाठ क्षेत्र की पृष्ठभूमि की तरह देखें:

30

यह ज्यादा बेहतर और सरल एक खींचे छवि के साथ किया जा सकता है। एक मध्यम खंड जिसे छोर पर बढ़ाया जा सकता है और कैप्स लगाया जा सकता है। एक ऐसी छवि बनाएं जो केवल इस दोहराने वाले अनुभाग (एक बहुत ही छोटा टेक्स्ट फ़ील्ड) का एक पिक्सेल रखने के लिए पर्याप्त हो, और फिर stretchableImageWithLeftCapWidth: topCapHeight का उपयोग करके एक खिंचाव वाली छवि बनाएं। बाएं एंड कैप की चौड़ाई को 'बाएं कैपविड्थ' में पास करें। आप इसे लंबवत रूप से भी खींच सकते हैं, लेकिन यदि आपकी पृष्ठभूमि छवि आपके टेक्स्ट बॉक्स की समान ऊंचाई है तो इसका प्रभाव नहीं पड़ेगा।

यदि आप फ्लैश या इलस्ट्रेटर में 9-स्लाइस स्केलिंग से परिचित हैं, तो यह बिल्कुल वही अवधारणा है, सिवाय इसके कि मध्यम वर्ग केवल एक पिक्सेल चौड़े/लंबा हैं।

इसका लाभ आपको कई स्तरित ऑब्जेक्ट्स के साथ स्केलिंग करने की चिंता करने की ज़रूरत नहीं है और आप किसी भी समय अपने टेक्स्ट फ़ील्ड का आकार बदल सकते हैं और पृष्ठभूमि व्यवहार में रहेगी। यह अन्य तत्वों पर भी काम करता है!

+0

मेरे लिए धन्यवाद। –

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