2010-05-10 7 views

Antwort

18

Löschen Sie einen flexiblen Leertaste-Button zwischen Ihren UIBarButtonItems. Dies ist ziemlich einfach in IB zu tun, schauen Sie auf die Unterseite der Kontrollen.

Wenn Sie diese programtically tun wollen, sollte dieser Code helfen:

UIBarButtonItem* button1 = [[UIBarButtonItem alloc] initWithTitle:@"Button1" style:UIBarButtonItemStyleBordered target:self action:@selector(button1Action)]; 
UIBarButtonItem* button2 = [[UIBarButtonItem alloc] initWithTitle:@"Button2" style:UIBarButtonItemStyleBordered target:self action:@selector(button2Action)]; 
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 
[myToolbar setItems:[NSArray arrayWithObjects:button1, flexibleSpace, button2, nil]]; 
+0

Alku, du hast deine Antwort dreimal geändert, um alle Bits hinzuzufügen, die alle anderen sagen! Nicht cool – h4xxr

+1

Ja, mir ist aufgefallen, und es tut mir leid. Ich habe die Frage beim ersten Mal falsch gelesen, dann ging ich zum Bearbeiten meiner Antwort und stellte fest, dass ich beim dritten Mal eine bessere Antwort geben konnte, da ich einen Code zur Verfügung hatte. Als ich das alles erledigt hatte, seid ihr gekommen und habt besser geantwortet als meine ursprünglichen Antworten. –

+0

Vielen Dank, dies ist eine ausgezeichnete Antwort, ich schätze die Mühe, die Sie unternommen haben, um die Antwort in einem Bereich zu kompilieren. Du bist ein guter Mann. –

2

Yup. Erstellen Sie UIBarButtonItem mit der -initWithBarButtonSystemItem:-Methode, die UIBarButtonSystemItemFlexibleSpace verwendet, und fügen Sie das zwischen Ihren einzelnen tatsächlichen Symbolleistenelementen ein. Z.B .:

UIBarButtonItem *flexSpace = [[UIBarButton alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace]; 
myToolbar.items = [NSArray arrayWithObjects:buttonOne,flexSpace,buttonTwo,flexSpace,buttonThree,nil]; 
[flexSpace release]; 
4

die Breite auf UIBarButtonItem Vorschlag ignorieren; Dies ist nicht der korrekte Ansatz wie von Apple empfohlen und funktioniert nicht, wenn Sie weitere Symbole hinzufügen möchten.

Der richtige Ansatz besteht darin, einen "flexiblen Platz" (technisch eine andere Taste!) Zwischen den einzelnen Tasten hinzuzufügen. Sie sehen es in Interface Builder, oder es kann bei Bedarf direkt im Code hinzugefügt werden.

+0

technisch ein anderer Knopf !!! Holen Sie den Punkt daraus – Anish