2012-10-16 24 views
21

जब मैं adjustsFontSizeToFitWidth के साथ YES पर किसी लेबल में टेक्स्ट जोड़ता हूं तो पाठ अब लंबवत केंद्रित नहीं होता है और अंततः लेबल फ्रेम के नीचे पाठ को क्लिप करता है। बड़ी मात्रा में पाठ के लिए यह अंततः लेबल के नीचे गायब हो जाएगा।समायोजित करते समय UILabel की क्लिपिंग FontSizeToFitWidth

enter image description here

के रूप में मैं यह उम्मीद होती है इस क्लिप किया गया है (यानी फ़ॉन्ट आकार को कम नहीं किया टेक्स्ट ऊर्ध्व केंद्रित किया गया था:

View background is blue, label background is white

अगर आप कम पाठ जोड़ने क्या होता है लेबल में और ऊपर और नीचे पर काटा गया।

enter image description here

पुन: उत्पन्न करने के लिए कोड है:

- (void)loadView { 
    [super loadView]; 

    self.view.backgroundColor = [UIColor blueColor]; 
    testLabel = [[UILabel alloc] init]; 
    testLabel.font = [UIFont boldSystemFontOfSize:172]; 
    testLabel.textColor = [UIColor blackColor]; 
    testLabel.adjustsFontSizeToFitWidth = YES; 
    testLabel.numberOfLines = 1; 
    testLabel.frame = CGRectMake(50, 50, 300, 100); 
    testLabel.text = @"123"; 

    [self.view addSubview:testLabel]; 
} 

ऐसा होना चाहिए? और मैं अपने लेबल में वर्णों की संख्या के बावजूद अपने लेबल को लंबवत रूप से केंद्र में कैसे प्राप्त करूं।

उत्तर

38

फ़ॉन्ट पैमाने पर पाठ ऊर्ध्वाधर-केंद्र के लिए अपने कोड में

testLabel.baselineAdjustment = UIBaselineAdjustmentAlignCenters; 

जोड़ें।

+1

शानदार, क्रूमेलर! यह पूरी तरह से काम किया, मुझे इस संपत्ति के बारे में कोई जानकारी नहीं थी। मैं समायोजन FontFoFitWidth गुण के लिए सहायक होगा यह उल्लेख करने के लिए वर्ग संदर्भ है। एक बार फिर धन्यवाद। –

+0

पूरी तरह से काम करता है। –

+1

UILabel के साथ काम करने के इतने सालों और मैंने कभी इस संपत्ति से मुलाकात नहीं की है)) – Tim

-1

यह भी समायोजित करना चाहते हैं कि समायोजन टेक्स्ट के साथ FontSizeToFitWidth बहुत अच्छी तरह से काम नहीं करता है, इसलिए यदि आप कर सकते हैं तो जिम्मेदार पाठ के बजाय लेबल में अपने गुण जोड़ें। यह मेरे लिए काम किया।