2010-12-17 1 views
0

so habe ich eine UIToolbar mit einem "Label" (eigentlich ein UIBarButtonItem) auf es etwa so:So erstellen UIToolbar Letztes Update Etikett wie in der E-Mail iPhone gefunden App

alt text

zu machen Ich habe den Interface-Builder verwendet und ein UIBarButton-Element in der Werkzeugleiste platziert und den Stil auf "plain" gesetzt. Wie der Titel sagt, versuche ich jedoch, den Text unten in der Mail-App des iPhones zu replizieren, also muss ich zuerst die Schriftgröße und die Schriftart ändern. Wie würde ich darüber gehen? Hier ist der relevante Code:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    lastUpdateLabel.title = @"Last updated...";//lastUpdateLabel is of type UIBarButtonItem 

    [self.view addSubview:self.navigationController.view]; 

    [self.navigationController.view setFrame:self.view.frame]; 

} 

Ich bin mir bewusst, dass ich wahrscheinlich drei verschiedene Etikett Side-by-Side muß für die Änderung der Schriftdicke berücksichtigen (fett/nicht fett?) In der Beschriftung des Mail-App. Ich würde jedoch gerne versuchen, einen zu ändern, bevor ich fortfahre.

Ich frage mich auch, wie man das "Label" unclickable machen kann. Wenn ich setEnabled: NO verwende, wird der Text ausgegraut, was ich nicht möchte. Ich möchte nur, dass die Klick-Animation nicht angezeigt wird, wenn die "Beschriftung" angetippt wird.

Vielen Dank im Voraus!

EDIT:

So habe ich das Erstellen von Labels mit dem folgenden Code am Ende:

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 150.0f, 20.0f)]; 
    label.text = @"last updated..."; 
    label.textColor = [UIColor colorWithWhite:0.5 alpha:1.0]; 
    label.font = [UIFont systemFontOfSize:13.0]; 
    label.userInteractionEnabled = NO; 

    [lastUpdateLabel initWithCustomView:label]; 
    [label release]; 

Und es ergibt dies:

alt text

Allerdings möchte ich die Hintergrund des Etiketts, um nicht weiß zu sein, genauer gesagt möchte ich, dass der Hintergrund klar ist, so dass die Graustufen der Werkzeugleiste durchscheinen. Ich habe jedoch kein Hintergrundattribut in der UILabel-Dokumentation gefunden. Wer weiß, wie man das macht? Vielen Dank!

Antwort

2

Sie sollten eine benutzerdefinierte Bar-Schaltfläche verwenden, die eine UILabel als benutzerdefinierte Ansicht enthält. Auf diese Weise können Sie die Schriftgröße usw. über die Eigenschaften des Labels ändern.

UILabel *label = [[[UILabel alloc] initWithFrame:myFrame] autorelease]; 
... 
UIBarButtonItem *statusItem = [[[UIBarButtonItem alloc] initWithCustomView:label] autorelease]; 
myToolbar.items = [NSArray arrayWithObject:statusItem]; 
+0

Das hat mich definitiv auf den richtigen Weg gebracht (danke!), Aber ich habe ein anderes Problem (siehe meine Frage). – Stunner

1

Das UILabel ist eine Unterklasse von UIView mit einer backgroundColor-Eigenschaft. Rufen Sie einfach label.backgroundColor = [UIColor clearColor];.

+0

Zeigt, wie viel von einem Noob ich bin. Vielen Dank! – Stunner

Verwandte Themen