2011-12-25 17 views
15

का उपयोग करते समय UINavigationbar शीर्षक काट दिया गया है मेरे आईफोन ऐप में एक टैब बार नियंत्रक है और प्रत्येक टैब (4 टैब) पर एक UINavigationController है कि मैं एक अलग रंग बनना चाहता हूं और शीर्षक पर फ़ॉन्ट बदलना चाहता हूं, इसलिए मैंने बनाया हर जगह उपयोग करने के लिए मेरा स्वयं का कस्टम नेविगेशन नियंत्रक ताकि वे परिवर्तन केवल 1 स्थान पर हों। टिंट आसान है और ठीक काम करता है, लेकिन जब मैं setTitleTextAttributes का उपयोग करके फ़ॉन्ट सेट करने का प्रयास करता हूं, तो यह फ़ॉन्ट बदलता है लेकिन कुछ विचारों पर शीर्षक अंत में कट ऑफ किया जाता है (यानी "मेरा शीर्षक ...")। अगर मैं विचार बदलता हूं और फिर कट ऑफ़ शीर्षक के साथ दृश्य में वापस आ जाता हूं, तो शीर्षक ठीक से दिखाया जाता है।शीर्षक TextAttributes

वर्तमान में अपने कस्टम UINavigationController में मेरी viewDidLoad है:

UIFont *font = [UIFont fontWithName:@"GillSans-Bold" size:22]; 
NSDictionary *attr = [[NSDictionary alloc] initWithObjectsAndKeys:font, UITextAttributeFont, nil]; 
[self.navigationBar setTitleTextAttributes:attr]; 

मेरे बारे में सोचा है कि यह titleView के फॉन्ट बदल रहा है लेकिन यह नया आकार के अनुसार आकार दिया जा रहा है नहीं कर रहा है (क्योंकि यह एक बड़ा फ़ॉन्ट है) था। एक और मुद्दा यह है कि जब फोन परिदृश्य में बदल जाता है, तो कम (जी, पी, वाई) लटकने वाले किसी भी अक्षर में बोतलों काट दिया जाता है। क्या लेबल का आकार बदलने या न्यूनतम फॉन्टसाइज सेट करने की अनुमति देने का कोई तरीका है, इसलिए पाठ बहुत बड़ा होने पर बस छोटा हो जाता है?

उत्तर

3

यह मेरे लिए काम किया

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    [self setTitle:self.station.title]; 
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 400, 44)]; 
    label.backgroundColor = [UIColor clearColor]; 
    [label setFont:[UIFont fontWithName:@"GillSans-Bold" size:24.0]]; 
    label.textAlignment = UITextAlignmentCenter; 
    label.textColor = [UIColor whiteColor]; 
    label.adjustsFontSizeToFitWidth = YES; 
    label.text = self.title;  
    self.navigationItem.titleView = label; 
} 
+5

बदसूरत हैक, एक नया शीर्षक दृश्य बनाने? ओह ... –

0

मुझे लगता है कि इस समस्या को w.r.trootviewcontroller है। टैब बार को आपके रूट व्यू कंट्रोलर में सही तरीके से परिभाषित किया गया है?

यदि आप नेविगेशन नियंत्रकों के माध्यम से पुश और पॉप करते हैं तो वहां से सभी सामग्री नेविगेशन के बावजूद वही होगी।

0

यह मेरे लिए काम किया:

+ (void)setNavBarTitle:(NSString *)title forUINavigationItem:(UINavigationItem*)navigationItem 
{ 
    UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, 0)] autorelease]; 
    label.backgroundColor = [UIColor clearColor]; 
    label.font = [UIFont boldSystemFontOfSize:24]; 
    label.textAlignment = UITextAlignmentCenter; 
    label.baselineAdjustment = UIBaselineAdjustmentAlignCenters; 
    label.textColor = [UIColor whiteColor]; 
    label.adjustsFontSizeToFitWidth = YES; 
    label.text = title; 
    [label sizeToFit]; 
    navigationItem.titleView = label; 
} 
संबंधित मुद्दे