Как рассчитать оптимальную ширину titleView?
Вопрос
Я использую навигацию с пользовательским UIView
подкласс, который становится моим titleView.Я хочу убедиться, что это полная доступная ширина.
Логично из моего UIViewController
's viewWillAppear:
, это должно быть:
CGFloat width = self.width - self.navigationItem.leftBarButtonItem.width - someConstant;
(У меня здесь нет подходящего товара.)
Таким образом, это будет адаптироваться к разной возможной ширине leftBarButtonItem
.Загвоздка в том, что leftBarButtonItem
является nil
, так leftBarButtonItem.width
всегда 0 (ну, во всяком случае, в симуляторе).
backBarButtonItem
также равен нулю.
Что мне следует делать вместо этого?
Решение
Я взломал это, выполнив следующие действия:
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;
Противно, но это работает
Не связан с StackOverflow