Come faccio a calcolare la larghezza ottimale titleView?
Domanda
sto usando di navigazione con una sottoclasse UIView
personalizzato che diventa il mio titleView. Voglio assicurare che questo è l'intera larghezza disponibile.
A rigor di logica dal UIViewController
di mio viewWillAppear:
, questo dovrebbe essere:
CGFloat width = self.width - self.navigationItem.leftBarButtonItem.width - someConstant;
(non ho una voce proprio qui.)
Ciò adattare, quindi, per le diverse possibili larghezze del leftBarButtonItem
. Il problema è che è leftBarButtonItem
nil
, così leftBarButtonItem.width
è sempre 0 (beh, nel simulatore in ogni caso).
backBarButtonItem
è anche pari a zero.
Cosa dovrei fare, invece?
Soluzione
ho inciso questo nel modo seguente:
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;
Brutto ma funziona
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow