Как рассчитать оптимальную ширину titleView? - PullRequest
5 голосов
/ 07 августа 2009

Я использую навигацию с пользовательским подклассом UIView, который становится моим titleView. Я хочу убедиться, что это полная доступная ширина.

По логике из моих UIViewController viewWillAppear: это должно быть:

CGFloat width = self.width - self.navigationItem.leftBarButtonItem.width - someConstant;

(у меня нет нужного предмета здесь.)

Это адаптировало бы, следовательно, для различной возможной ширины leftBarButtonItem. Подвох в том, что leftBarButtonItem равно nil, поэтому leftBarButtonItem.width всегда равно 0 (ну, в любом случае, в симуляторе).

backBarButtonItem также ноль.

Что мне делать вместо этого?

1 Ответ

4 голосов
/ 24 сентября 2009

Я взломал это, выполнив следующее:

    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;

Противно, но работает

...