iOS 5 Zurück-Taste Größe
Ich bin mit dem iOS 5 UIAppearance Protokoll um eine benutzerdefinierte Navigationsleiste Schaltfläche zurück gesehen hier. Im Gegensatz zu anderen Methoden, die ich gefunden habe, dieses ist das beste seit es behält den Standard-zurück-button-Animationen und Verhaltensweisen.
Das problem ist nur, dass ich nicht ändern kann seine Größe oder legen Sie es auf nicht clip Untersichten. Hier ist, was passiert:
Ist ein beabsichtigtes Verhalten, B ist Standard-Stil ist, wird C das Ergebnis abgeschnitten.
Leider, es ist nicht so einfach wie das festlegen UIBarButtonItem zu clipsToBounds=NO.
Weiß jemand, wie man dieses Problem lösen? Danke!
Haben Sie versucht, UIBarButtonItem.superview.clipsToBounds = NEIN? (Oder superview.superview...), Denn die Navigationsleiste soll nicht größer sein, als es schon ist. Also alles, was Sie werde versuchen ein 'hack'. Und wenn es ein hack ist, dann ist dies der "standard" - Weg zu gehen 🙂
Was Sie empfehlen ist das nicht möglich, da
Ja, du hast Recht! Was ich generell meine, ist das durchqueren der view-Hierarchie und finden Sie heraus, welche eines clips. Auch können Sie kümmern sich um iOS < 5 und iOS >=5 anders. Ich eigentlich bedeuten, das die Navigationsleiste soll nicht größer sein, denn die bar-Elemente sind nicht beschränkt ist, ist die Navigationsleiste, welche Grenzen Ihnen. Es hat hardcoded Polsterung und der übriggebliebene ist der Platz für die Tasten.
Was Sie empfehlen ist das nicht möglich, da
UIBarButtonItem
Erben nicht von UIView
. Allerdings habe ich versucht die Einstellung self.navigationController.navigationItem.backBarButtonItem.customView.clipsToBounds = NO;
und self.navigationItem.backBarButtonItem.customView.clipsToBounds = NO;
. Ich nehme an, du meintest, dass die UIBarButtonItem
soll nicht größer sein, als ich bin nicht berühren die nav bar selbst.Ja, du hast Recht! Was ich generell meine, ist das durchqueren der view-Hierarchie und finden Sie heraus, welche eines clips. Auch können Sie kümmern sich um iOS < 5 und iOS >=5 anders. Ich eigentlich bedeuten, das die Navigationsleiste soll nicht größer sein, denn die bar-Elemente sind nicht beschränkt ist, ist die Navigationsleiste, welche Grenzen Ihnen. Es hat hardcoded Polsterung und der übriggebliebene ist der Platz für die Tasten.
InformationsquelleAutor jpsim | 2012-05-06
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Sie entdeckt haben,
UIAppearance
proxies lassen Sie nicht passen Sie die Abmessungen der Schaltfläche selbst: die Liste der unterstützten Darstellung Methoden fürUIBarButtonItem
ist in der Dokumentation, und während es enthält Metriken für den Titel label selbst die Taste ist off-limits.Für was es Wert ist, die Taste selbst ist eigentlich 44 Punkte (88 Pixel, wenn Sie in der Netzhaut) hoch in Bezug auf touchable area, es ist nur die Schaltfläche Grafik ist kleiner als die.
Wenn du tot bist setzen auf das, was beläuft sich auf ein 3-pt Differenz in der Höhe dann die beste option ist wahrscheinlich zu erstellen Sie Ihre eigenen benutzerdefinierten Schaltfläche, und verwenden Sie die
UINavigationItem
setLeftBarButtonItem
Methode. Wie Sie, Sie gehen zu müssen, um zu implementieren eine kurze Methode angebracht, dass die Taste, diepopNavigationController
um sicherzustellen, dass das korrekte Verhalten bleibt.Update: ich habe gerade herausgefunden, dass, wenn Sie halten Sie Ihre zurück-Taste, um Sie können in der Tat, animieren Sie es, um es schieben Sie in einer ähnlichen Weise wie eine standard-Schaltfläche "zurück". In den folgenden code
self.backButton
ist dieUIButton
Sie hätte in IhreminitWithCustomView
UIBarButtonItem
Methode....dies wird immer dann ausgelöst, wenn der view-controller verschwindet (dh, wenn knallte und geschoben), aber man kann Haken in der
UINavigationController
delegieren, um nur auszulösen, wenn Sie den nav-controller geholt, statt. Es scheint durchaus auf die Schaltfläche verschieben, wenn der controller betätigt wird, zwar hab ich nur getestet, es auf dem simulator.UIAppearance
, @lxt. Leider durch die Einstellung einer benutzerdefiniertenleftBarButtonItem
verliere ich diebackBarButtonItem
animation (horizontal verschiebbar) und daUIBarButtonItem
Erben nicht vonUIView
, ich kann nicht animieren, es selbst.Versuchen Sie, den code, den ich nur gepostet, könnte Ihnen helfen, mit der animation. Scheint zu funktionieren für mich.
InformationsquelleAutor lxt
Landete ich mit einer custom-view-controller-Klasse für jede VC bin ich in meiner navigation controller.
OEViewController.h
OEViewController.m
Dies hat den zusätzlichen Vorteil der Arbeit mit iOS 4.0+ und nicht mit UIAppearance.
Dank @lxt für seine Hilfe!
InformationsquelleAutor jpsim