2011-12-02 9 views
5

मैं इस तरह मेरे विचार करने के लिए एक पाठ फ़ील्ड द्वारा जोड़ा जा रहा:UITextField पाठ स्पष्ट बटन overlaps

UITextField* tf_email = [[UITextField alloc] initWithFrame:CGRectMake((320-btnImage1.size.width)/2, 170, 175, 35)]; 
    [tf_email setBackgroundColor:[UIColor clearColor]]; 
    [tf_email setBorderStyle:UITextBorderStyleRoundedRect]; 
    [tf_email setClearButtonMode:UITextFieldViewModeWhileEditing]; 
    [tf_email setReturnKeyType:UIReturnKeyDone]; 
    [tf_email setAutocapitalizationType:UITextAutocapitalizationTypeNone]; 
    [tf_email setEnablesReturnKeyAutomatically:NO]; 
    [tf_email setDelegate:self];  
    [tf_email setOpaque:YES]; 
    tf_email.tag=1; 
    tf_email.font = TTSTYLEVAR(font); 
    tf_email.layer.cornerRadius = 10; 
    tf_email.keyboardType = UIKeyboardTypeEmailAddress; 
    [tf_email setAutocorrectionType:UITextAutocorrectionTypeNo]; 
    tf_email.placeholder = @"[email protected]"; 
    [self.view addSubview:tf_email]; 

जब मैं इस क्षेत्र में लंबे समय से पाठ दर्ज करें, पाठ और स्पष्ट बटन चढ़ जाता है। क्या कोई जानता है कि इसे कैसे ठीक करें?

+0

कोशिश। – beryllium

+0

कोई फर्क नहीं पड़ता। –

उत्तर

3

मैं समझ क्या मुद्दा था। एक और फाइल में, मेरे पास UITextField के लिए परिभाषित एक श्रेणी थी। इस श्रेणी ने, बाएं और दाएं सीमा के बहुत करीब होने के लिए टेक्स्ट क्षेत्र निर्दिष्ट किया है। वह ओवरलैप पैदा कर रहा था।

सबक सीखा: श्रेणियों को परिभाषित करते समय, हमें अलग-अलग फाइलों का उपयोग करना चाहिए ताकि संशोधनों को आसानी से पता लगाया जा सके।

+0

आप मेरा दिन बचाओ ... –

1

[button bringSubviewToFront:self.view];

afert जोड़ने पाठ फ़ील्ड ..

+0

मुझे सामने लाने के लिए किस दृश्य की आवश्यकता है? –

+0

clearButton व्यू का अर्थ है कि टेक्स्टफील्ड द्वारा ओवरलैप किया गया है ... – Developer

+0

कृपया आईपैड पर ऐप स्टोर ऐप देखें। इसमें एक खोज बटन है जहां टेक्स्ट और साफ़ बटन टकरा नहीं जाता है। उस स्थिति में एक दृश्य को दूसरे के ऊपर लाने की आवश्यकता नहीं होगी। –

12

UITextField का एक उपवर्ग बनाएँ और,

/*< Place holder position >*/ 
- (CGRect)textRectForBounds:(CGRect)bounds { 

    bounds.size.width = bounds.size.width - 20.0f; 
    return bounds; 
} 

/*< Text Posiotion >*/ 
- (CGRect)editingRectForBounds:(CGRect)bounds { 

    bounds.size.width = bounds.size.width - 20.0f; 
    return bounds; 
} 

चीयर्स नीचे दिए गए तरीकों को ओवरराइड !!!

3

@Augustine पी ए, मुझे लगता है कि एक बेहतर दृष्टिकोण सुपर फोन और इस तरह परिणाम संशोधित करने के लिए है: मानक फ़ॉन्ट का उपयोग करें और परिणाम देखने के लिए

-(CGRect) textRectForBounds:(CGRect)bounds 
{ 
    CGRect rect = [super textRectForBounds:bounds]; 
    rect.size.width = rect.size.width - 20.0f; 
    return rect; 
} 

-(CGRect) editingRectForBounds:(CGRect)bounds 
{ 
    CGRect rect = [super editingRectForBounds:bounds]; 
    rect.size.width = rect.size.width - 20.0f; 
    return rect; 
}