नेविगेशन बार में एक से अधिक लेबल

वोट
3

मैं नेविगेशन बार में एक दृश्य के iPhone पर अभी चल रहा है पृष्ठ के समान बना सकते हैं और पाठ की 3 लाइनों करना चाहते हैं।

एक ही रास्ता मैं इस था क्या करने के लिए मिल सकता है:

UINavigationBar *bar = [self.navigationController navigationBar];   
label = [[UILabel alloc] initWithFrame:CGRectMake(60, 2, 200, 14)];
label.tag = SONG_TAG;
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:14];
label.adjustsFontSizeToFitWidth = NO;
label.textAlignment = UITextAlignmentCenter;
label.textColor = [UIColor whiteColor];
label.highlightedTextColor = [UIColor blackColor];
[bar addSubview:label];
[label release];

//Create album label
label = [[UILabel alloc] initWithFrame:CGRectMake(60, 17, 200, 12)];
label.tag = ALBUM_TAG;
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont systemFontOfSize:12];
label.adjustsFontSizeToFitWidth = NO;
label.textAlignment = UITextAlignmentCenter;
label.highlightedTextColor = [UIColor blackColor];
label.textColor = HEXCOLOR(0xA5A5A5ff);
[bar addSubview:label];
[label release];

//Create artist label
label = [[UILabel alloc] initWithFrame:CGRectMake(60, 30, 200, 12)];
label.tag = ARTIST_TAG;
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont systemFontOfSize:12];
label.adjustsFontSizeToFitWidth = NO;
label.textAlignment = UITextAlignmentCenter;
label.highlightedTextColor = [UIColor blackColor];
label.textColor = HEXCOLOR(0xA5A5A5ff);
[bar addSubview:label];
[label release];

इस के साथ समस्या यह मैं उन्हें जब दृश्य परिवर्तन हटाने के लिए है। तो, -viewWillDisappear में मेरे पास है:

UILabel *label;
label = (UILabel *)[self.navigationController.navigationBar viewWithTag:SONG_TAG];
[label removeFromSuperview];
label = (UILabel *)[self.navigationController.navigationBar viewWithTag:ALBUM_TAG];
[label removeFromSuperview];
label = (UILabel *)[self.navigationController.navigationBar viewWithTag:ARTIST_TAG];
[label removeFromSuperview];

मुझे लगता है कि जिस तरह से यह करने के लिए उस में 3 लेबल है कि एक कस्टम दृश्य बनाने के लिए, और शीर्षक दृश्य में जोड़ना है। (यहाँ पकड़ है - आप केवल नेविगेशन बार पर शीर्षक दृश्य जगह पर 1 लेबल या दृश्य जोड़ सकते हैं)

self.navigationItem.titleView = newViewIMadeWithThreeLabels
09/12/2008 को 22:57
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


7 जवाब

वोट
4

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

UIView *btn = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 60)];

UILabel *label;
label = [[UILabel alloc] initWithFrame:CGRectMake(0, 10, 200, 16)];
label.tag = 1;
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:16];
label.adjustsFontSizeToFitWidth = NO;
label.textAlignment = UITextAlignmentCenter;
label.textColor = [UIColor blackColor];
label.text = @"first line";
label.highlightedTextColor = [UIColor blackColor];
[btn addSubview:label];
[label release];

label = [[UILabel alloc] initWithFrame:CGRectMake(0, 30, 200, 16)];
label.tag = 2;
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:16];
label.adjustsFontSizeToFitWidth = NO;
label.textAlignment = UITextAlignmentCenter;
label.textColor = [UIColor blackColor];
label.text = @"second line";
label.highlightedTextColor = [UIColor blackColor];
[btn addSubview:label];
[label release];

self.navigationItem.titleView = btn;
20/12/2009 को 22:37
का स्रोत उपयोगकर्ता

वोट
2

आप बनाने अपने लेबल के साथ एक UIViewController सही स्थान पर रखने की कोशिश कर सकते हैं, और फिर यह दृष्टांत, UIViewControllerSubclass * उप = [[UIViewControllerSubclass alloc] init] की तरह;

UIViewController उपवर्ग में, आपको अपने दृश्य का निर्माण loadView प्रतिनिधि विधि में और जैसे दृश्य नियंत्रक के दृश्य करने के लिए प्रत्येक लेबल के दृष्टिकोण को संलग्न करने के लिए होता है [[आत्म दृश्य] addSubview: लेबल];

तो फिर इस तरह अपने दृश्य देते हैं:

self.navigationItem.titleView = sub.view;

यही कारण है कि काम हो सकता है।

09/12/2008 को 23:10
का स्रोत उपयोगकर्ता

वोट
1

आज मैं एक ही समस्या से गुजर रहा था और मैं इसे इस तरह से किया था।

  1. मैं स्थान 0,0 पर आकार 320 * 44 के एक UIView बनाया - आप अपने आवश्यकता के आधार पर एक अलग दृष्टिकोण आकार हो सकता है।

  2. कि कस्टम navigationBarTitleView नामित दृश्य के लिए एक IBOutlet बनाएं - अपने दृश्य के साथ आवश्यक कनेक्शन बनाने

  3. या viewDidAppear: निम्न कोड के अंदर viewWillAppear अंदर के साथ navgiationBar को subview जोड़ें:

    [[[आत्म navigationController] navigationBar] addSubview: navigationBarTitleView];

  4. जब आप navigationController पर इस दृश्य धक्का, superview से navigationBarTitleView को हटा दें।

    [NavigationBarTitleView removeFromSuperview];

23/10/2010 को 22:29
का स्रोत उपयोगकर्ता

वोट
1
UINavigationBar *bar = [self.navigationController navigationBar];
CGFloat navBarHeight = 70.0f;    
CGRect frame = CGRectMake(0.0f, 0.0f, 320.0f, navBarHeight);
[bar setFrame:frame];
UILabel *label;
label = [[UILabel alloc] initWithFrame:CGRectMake(0, 10, 320, 10)];
label.tag = 1;
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:12];
label.adjustsFontSizeToFitWidth = NO;
label.textAlignment = UITextAlignmentCenter;
label.textColor = [UIColor blackColor];
label.text = @"Set the details for this event.";
label.highlightedTextColor = [UIColor blackColor];
[bar addSubview:label];
[label release];
[bar release];
14/05/2010 को 13:13
का स्रोत उपयोगकर्ता

वोट
1

पोस्ट में आपका बाद में सुझाव सही है। एक UIView कि अपने 3 लेबल होते हैं और titleView के रूप में सेट बनाएँ। कृपया subviews UINavigationBar को सीधे जोड़ने के लिए प्रयास न करें।

10/12/2008 को 15:34
का स्रोत उपयोगकर्ता

वोट
0

एक neater तरीका सिर्फ करने के लिए है enum, जो आपके टैग:

enum {
  SONG_TAG,
  ALBUM_TAG,
  ARTIST_TAG
};

आपका कोड तो काम करना चाहिए।

25/09/2010 को 19:07
का स्रोत उपयोगकर्ता

वोट
0

मैं एक पूरे दृश्य को जोड़ने की कोशिश की .. हालांकि, आवेदन दुर्घटनाग्रस्त जब भी मैं एक subview (एक लेबल की तरह) कहा कि यह करने के लिए loadView प्रतिनिधि में रखा। मैं वह सब पूरा दुर्घटनाओं डिबगिंग में महान नहीं कर रहा हूँ, इसलिए मैं का उपयोग कर एक बटन और अधिक आसान था पाया। मैं नहीं मिला किसी भी पक्ष को प्रभावित करता है अभी तक किया है ...

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(0, 0, 320, 60);

UILabel *label;
label = [[UILabel alloc] initWithFrame:CGRectMake(0, 10, 200, 16)];
label.tag = SONG_TAG;
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:16];
label.adjustsFontSizeToFitWidth = NO;
label.textAlignment = UITextAlignmentCenter;
label.textColor = [UIColor blackColor];
label.text = @"first line";
label.highlightedTextColor = [UIColor blackColor];
[btn addSubview:label];
[label release];

label = [[UILabel alloc] initWithFrame:CGRectMake(0, 30, 200, 16)];
label.tag = SONG_TAG;
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:16];
label.adjustsFontSizeToFitWidth = NO;
label.textAlignment = UITextAlignmentCenter;
label.textColor = [UIColor blackColor];
label.text = @"second line";
label.highlightedTextColor = [UIColor blackColor];
[btn addSubview:label];
[label release];

self.navigationItem.titleView = btn;
15/12/2008 को 23:46
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more