Como faço para calcular o ideal titleView largura?
Pergunta
Eu estou usando navegação com uma subclasse UIView
personalizado que torna a minha titleView. Eu quero garantir isso é a largura total disponível.
Logicamente de UIViewController
do meu viewWillAppear:
, este deve ser:
CGFloat width = self.width - self.navigationItem.leftBarButtonItem.width - someConstant;
(Eu não tenho um item certo aqui.)
Este seria adaptar, em seguida, para diferentes larguras possíveis do leftBarButtonItem
. O problema é que leftBarButtonItem
é nil
, então leftBarButtonItem.width
é sempre 0 (bem, no simulador de qualquer maneira).
backBarButtonItem
também é nulo.
O que eu deveria estar fazendo em vez disso?
Solução
Eu cortei isso fazendo o seguinte:
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;
desagradável, mas ele funciona
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow