Richtige Grenzen für navigationItem.titleView layoutSubviews
Habe ich eine Unterklasse von UIView
dass ich Hinzugefügt habe, als die titleView
einer navigationItem
mithilfe der folgenden Codezeile:
self.navigationItem.titleView = tempview;
Einfach genug. Das funktioniert auch. Mein problem ist, dass diese navigationItem
manchmal hat die rightBarButton
aktualisiert (manchmal gibt es keine Taste, manchmal gibt es eine standard-Größe-Taste, manchmal gibt es einen größeren button).
Dachte ich, ich könnte einfach die layoutSubviews
Methode der tempview
Klasse, die ich Hinzugefügt habe, als die titleView
so lege ich diese in:
-(void)layoutSubviews {
[super layoutSubviews];
self.mylabel.frame = self.bounds;
}
Scheint dies nicht zu funktionieren, da es nicht richtig die Größe der titleview, wenn die rightBarButton
Element aktualisiert wird.
Habe ich bemerkt auch, dass die Grenzen nicht wachsen, sobald Sie kleiner geworden, Sie ändern Sie einfach die position.
Ich habe versucht, mit setNeedsLayout
und layoutIfNeeded
aber denen, die einfach "Größe ändern" die Ansicht mit den falschen Grenzen.
Ich habe auch sicher gestellt, dass die rightBarButton
Element festgelegt ist, auf null, aber die Ansicht noch nicht richtig erweitern Sie einmal geschrumpft.
Vielen Dank für jede Hilfe!!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
konfigurieren Sie Ihre Ansicht mit
(wahrscheinlich in der initWithFrame)
dann implementieren
nun haben Sie Ihre Ansicht passend zur Größe der container und ändern der Größe automatisch.
Standardmäßig layoutSubviews nichts. Sie auch nie ändern Sie die Größe des titleView, so es sei denn, eine navbar nicht, dass für Sie, ist es keine überraschung, dass sich nichts ändert.
Da hast du nur die änderung der Größe einer der Untersichten, ich glaube nicht, dass autoresize funktionieren wird, da bin ich mir ziemlich sicher, dass es ausgelöst, wenn der superview (eine mit autoresizesubviews aktiviert) ändert die Größe. Ich würde vorschlagen, das Neuberechnen der Größe der titleview, wenn Sie ändern die rightbutton. Wenn es automatisch passt, wenn Sie es das erste mal, Sie könnten entfernen und readd, aber ich weiß, dass ist ein ziemlich hässlicher hack.
Statt überschreiben
-layoutSubviews
haben Sie versucht, die Einstellung der autoresizingMask Eigenschaft?layoutSubviews
Ansatz. Trotzdem danke!