2012-12-05 14 views
18

मैं इस मुद्दे को आगे लाता हूं जो मुझे सामना करता है। मैं नीचे UITextField प्रोग्रामेटिक रूप से बना रहा हूं।यूआईटीएक्स्टफाल्ड - घुमावदार कोने मुद्दा

UItextField *mobileNumberField = [[UITextField alloc] initWithFrame:CGRectMake(10, 195, 300, 41)]; 
mobileNumberField.delegate = self; 
mobileNumberField.borderStyle = UITextBorderStyleRoundedRect; 
[mobileNumberField.layer setCornerRadius:14.0f]; 
mobileNumberField.placeholder = @"Mobile Number"; 
[self.paymentsHomeView addSubview:mobileNumberField]; 

आउटपुट संलग्न छवि है।

enter image description here

मुझे पता है क्यों यह कोनों पर तोड़ने है न। नीचे दिए गए छवि की तरह मेरे टेक्स्ट फ़ील्ड को ठीक करने में मेरी सहायता करें। पहले से

enter image description here

धन्यवाद ..!

उत्तर

27

सिर्फ इस लाइन को हटाने ...

mobileNumberField.borderStyle = UITextBorderStyleRoundedRect; 

और इस कोड को भी जोड़ ..

[mobileNumberField setBackgroundColor:[UIColor whiteColor]]; 
    [mobileNumberField.layer setBorderColor:[UIColor grayColor].CGColor]; 
    [mobileNumberField.layer setBorderWidth:1.0]; 

मैं इस मदद आशा ..

10

नीचे अपनी तरह अपडेट करें।

UITextField *mobileNumberField = [[UITextField alloc] initWithFrame:CGRectMake(10, 195, 300, 41)]; 
    mobileNumberField.delegate = self; 
    mobileNumberField.layer.borderWidth = 1.0f; 
    mobileNumberField.layer.borderColor = [UIColor lightGrayColor].CGColor; 
    mobileNumberField. 
// mobileNumberField.borderStyle = UITextBorderStyleRoundedRect; 
    [mobileNumberField.layer setCornerRadius:14.0f]; 
    mobileNumberField.placeholder = @"Mobile Number"; 
    [self.paymentsHomeView addSubview:mobileNumberField]; 
+0

पाठ क्षेत्र डिफ़ॉल्ट रूप से UITextBorderStyleNone लेता है। अगर मैं उपरोक्त रेखा को हटा देता हूं, तो कोई सीमा नहीं है। – iOS

+0

आप इसके बजाय सीमा रंग सेट कर सकते हैं। –

+0

सीमा रंग स्थापित करने का प्रयास किया। लेकिन यह लागू नहीं है क्योंकि कोई सीमा नहीं है। – iOS

1

यहाँ समाधान है आपकी समस्या का

UITextField * txtField = [[UITextField alloc]initWithFrame:CGRectMake(0, 0, 200, 50)]; 

[txtField setBorderStyle:UITextBorderStyleNone]; 

[txtField.layer setMasksToBounds:YES]; 
[txtField.layer setCornerRadius:10.0f]; 
[txtField.layer setBorderColor:[[UIColor lightGrayColor]CGColor]]; 
[txtField.layer setBorderWidth:1]; 
[txtField setTextAlignment:UITextAlignmentCenter]; 
[txtField setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter]; 
[self.view addSubview:txtField]; 
+0

यह काम कर रहा है, लेकिन जब मैं इसे लागू करता हूं तो प्लेसहोल्डर टेक्स्ट और txtField की अग्रणी सीमा के बीच कोई जगह नहीं है।क्या आप जानते हैं कि इसे कैसे ठीक किया जाए (मैं प्लेसहोल्डर की शुरुआत में रिक्त स्थान डालने का प्रयास करता हूं: "प्लेसहोल्डर टेक्स्ट" के बजाय "प्लेसहोल्डर टेक्स्ट" लेकिन काम नहीं कर रहा है)? –

3

कोनों काटने का कारण यह है क्योंकि टेक्स्ट फ़ील्ड में एक संलग्न दृश्य है। जब आप कोने त्रिज्या सेट करते हैं, तो उस दृश्य पर लागू होता है और इस प्रकार अंदरूनी पाठ फ़ील्ड के कोनों को काटा जाता है - असल में वे भी नहीं बदला है।

समाधान UITextFieldUIView के अंदर डालना है, टेक्स्टफील्ड सीमावर्ती को किसी के लिए सेट करें। फिर uiview को सीमा और कोने त्रिज्या विनिर्देश लागू करें। सीमा रंग नोट करें, जो बहुत करीब है, अगर ऐसा नहीं है, तो UITextField सीमा रंग में।

लेखन के रूप में, का परीक्षण किया और Xcode 7.3.1, स्विफ्ट 2.2, iOS 8 और 9

स्विफ्ट में काम करता है:

textField.borderStyle = UITextBorderStyle.None 
textBorderView.layer.cornerRadius = 5 
textBorderView.layer.borderWidth = 1 
textBorderView.layer.borderColor = UIColor.lightGrayColor().colorWithAlphaComponent(0.2).CGColor 
0

स्विफ्ट 3 समाधान:

मैं अलग लिखा है स्विफ्ट में किसी भी परत पर सीमा और कोने त्रिज्या सेट करने के लिए फ़ंक्शन, आपको किसी भी दृश्य, सीमा चौड़ाई, कोने त्रिज्या और सीमा रंग को निम्न फ़ंक्शन

पर ले जाना होगा

`

3
textField.layer.cornerRadius=textfield.frame.size.height/2; 

textField.clipsToBounds=YES; 
+0

इसका निर्माण परिपत्र टेक्स्टफील्ड है – Miti

संबंधित मुद्दे