2016-10-08 2 views
1

Ich mache einige benutzerdefinierte Ansicht Controller-Übergänge und ich möchte meine Übergang von der Mitte der Taste, die gedrückt wurde, beginnen.Wie bekomme ich UIBarButtonItem center position

Für UIButton kann ich tun:

myCustomTransition.startingPoint = buttonPressed.center 

Aber wenn ich eine UIBarButtonItem verwenden möchten, wie eigentlich mein Übergang zu sagen, von der Mitte der Taste zu starten, weil ich sehe keine center Eigenschaft auf der UIBarButtonItem.

Irgendwelche Vorschläge?

+0

Sie müssen Schaltfläche in der Mitte der Navigationsleiste platzieren, richtig? – vaibhav

+0

@vaibhav: Nein, mein Button ist auf der rechten Seite, ich muss nur seine Position wissen, aber von dem, was ich gerade lese, gibt es keine Möglichkeit, auf die Grenzen von on UIBarButtonItem zuzugreifen. – Kobe

+0

Okay, wenn Sie sich entscheiden, platzieren Sie einfach ein 'UIView' in der Mitte der Navigationsleiste und erweitern Sie es bis zum Ende von rechts und links, dann fahren Sie fort, um Grenzen zu bekommen. – vaibhav

Antwort

1

Wenn Sie UIBarButtonItem nur als navigationItem.leftBarButtonItem oder navigationItem.rightBarButtonItem verwenden, können Sie die geometry-Eigenschaft nicht direkt abrufen, da UIBarButtonItem UIView nicht erbt, Sie aber schließlich mithilfe der tricky-Methode Geometrieeigenschaft abrufen können.

Dies ist die Hierachie eines einfachen Viewcontroller, die und rechts UIBarButtonItem verlassen hat:

enter image description here

UINavigationButton ist Ihr Ziel, bekommen seine rect und Sie können das Zentrum bekommen, was Sie brauchen.

Wenn Sie customeView verwenden, konvertieren Sie einfach den Frame von customeView auf den Punkt.

Verwandte Themen