2012-07-18 13 views
5

के सबक्लास में प्लेसहोल्डर टेक्स्ट को केंद्रित करना तो सबसे पहले, मुझे प्लेसहोल्डर टेक्स्ट रंग सेट करने की आवश्यकता थी, इसलिए मैंने कई स्टैक ओवरफ़्लो पोस्ट में दिखाए गए यूआईटीएक्स्टफील्ड को उपclassed। यह ठीक काम करता है। यहां इसका एक उदाहरण पोस्ट है: How do I subclass UITextField and override drawPlaceholderInRect to change Placeholder colorUITextField

लेकिन, जब मैं searchNameField.textAlignment = UITextAlignmentCenter; का उपयोग करने का प्रयास करता हूं तो यह अब प्लेसहोल्डर को केंद्रित नहीं कर रहा है। इनपुट टेक्स्ट अभी भी ठीक केंद्रित है।

तो फिर, यह मानते हुए कि केंद्रस्थल उपclassing के कारण काम नहीं कर रहा है, प्लेसहोल्डर पाठ केंद्रित करने के लिए मुझे अपने यूआईटीएक्स्टफिल्ड उप-वर्ग में क्या जोड़ना है?

धन्यवाद

संपादित

यहाँ कोड मैं इस समस्या को हल करने के लिए प्रयोग किया जाता है। यह UITextField के मेरे उप-वर्ग के अंदर रखा गया है।

- (CGRect)placeholderRectForBounds:(CGRect)bounds 
{ 
    CGSize size = [[self placeholder] sizeWithFont:[UIFont fontWithName:@"Arial" size:placeholdTextSize]]; 

    return CGRectMake((bounds.size.width - size.width)/2 , bounds.origin.y , bounds.size.width , bounds.size.height); 
} 

ध्यान दें कि प्लेसहोल्ड टेक्स्टक्साइज एक ऐसी संपत्ति है जिसे मैंने प्रारंभिकरण के दौरान सेट किया था।

// CustomTextField.h 
@interface CustomTextField : UITextField { 
} 
@end 

ओवरराइड तरीके::

उत्तर

5

यहाँ आप दोस्त

उपवर्गीकरण UITextField काम करेंगे जाना

@implementation 
- (CGRect)placeholderRectForBounds:(CGRect)bounds { 
    return CGRectMake(x,y,width,height);//Return your desired x,y position and width,height 
} 

- (void)drawPlaceholderInRect:(CGRect)rect { 
    //draw place holder. 
[[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:12]]; 

} 
@end 
+1

धन्यवाद में ऐसा कर सकते हैं। पूर्णता के लिए: इस समस्या को हल करने के लिए, मैंने 'placeholderRectForBounds' विधि का उपयोग किया। मूल प्रश्न में मेरा संपादन रुचि रखने वाले किसी भी व्यक्ति के लिए कोड दिखाता है। – Jomnipotent17

2

आप UITextfield उपवर्ग

- (void)drawPlaceholderInRect:(CGRect)rect { 

[[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.8] setFill]; 

[[self placeholder] drawInRect:rect withFont:[UIFont boldSystemFontOfSize:16.0] lineBreakMode:UILineBreakModeTailTruncation alignment:NSTextAlignmentCenter]; 

}

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

  • कोई संबंधित समस्या नहीं^_^