Überschreibt layoutSubviews, um [super layoutSubviews] aufzurufen und dann die Ansicht der Schaltfläche zu finden und neu zu positionieren

8

Ich versuche, mein UIBarButtonItem neu zu positionieren, so dass es mit seinen Kanten gegen den oberen und rechten Rand der UINavigationBar sitzt. Ich fand diese akzeptierte Antwort , wie man das macht, aber ich nicht wirklich verstehen, wie man es programmiert.

Ich habe damit begonnen, eine neue Klasse namens CustomNavBar zu erstellen, die von UINavigationBar erbt. Ich habe diese Methode dann in die Implementierung gestellt:

%Vor%

Was ich nicht verstehe, ist der Teil in der Antwort, der sagt

%Vor%

Wie kann ich das programmieren? Selbst ein Anstupsen in die richtige Richtung wäre hilfreich. Danke!

    
Eric Brotto 10.11.2011, 11:16
quelle

2 Antworten

15

Suchen Sie die Schaltfläche, die Sie verschieben möchten nachdem Sie layoutSubviews aufgerufen haben, da sie bei jedem Aufruf von layoutSubviews neu positioniert wird, wo iOS dies wünscht.

%Vor%     
voidStern 10.11.2011, 11:31
quelle
3

Sie können die Unteransichten durchlaufen und vergleichen, ob die aktuelle mit NSClassFromString übereinstimmt, wie zum Beispiel:

%Vor%

Sie könnten auch NSLog in der for-Schleife verwenden, um die verschiedenen Untersichten zu sehen.

    
phi 29.11.2011 15:38
quelle