Wie berechne ich die optimale Breite Titleview?
Frage
Ich bin mit Navigation mit einer benutzerdefinierten UIView
Unterklasse, die meine Titleview wird. Ich möchte sicherstellen, das die volle zur Verfügung stehende Breite ist.
Logischer von meinem UIViewController
des viewWillAppear:
, sollte dies sein:
CGFloat width = self.width - self.navigationItem.leftBarButtonItem.width - someConstant;
(Ich habe keinen richtigen Artikel hier haben.)
Das würde passen, dann für verschiedene mögliche Breiten des leftBarButtonItem
. Der Haken ist, dass leftBarButtonItem
ist nil
, so leftBarButtonItem.width
ist immer 0 (na ja, im Simulator sowieso).
backBarButtonItem
ist auch gleich Null.
Was soll ich stattdessen tun?
Lösung
ich gehackt dies, indem Sie folgendermaßen vorgehen:
int vcStackSize = [[self.navigationController viewControllers] count];
WEViewController* previousController = [[self.navigationController viewControllers] objectAtIndex:vcStackSize - 2];
NSString* previousTitle = [previousController title];
UIFont* font = [UIFont boldSystemFontOfSize:12];
lw = [previousTitle sizeWithFont:font].width + 26;
Nasty aber es funktioniert
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow