최적의 타이틀 뷰 너비를 어떻게 계산합니까?
문제
사용자 정의와 함께 내비게이션을 사용하고 있습니다 UIView
내 타이틀 뷰가되는 서브 클래스. 나는 이것이 가용 너비를 완전히 보장하고 싶습니다.
논리적으로 내 UIViewController
'에스 viewWillAppear:
, 이것은 다음과 같아야합니다.
CGFloat width = self.width - self.navigationItem.leftBarButtonItem.width - someConstant;
(여기에 올바른 항목이 없습니다.)
그러면 이것은 다른 가능한 폭에 적응할 것입니다. leftBarButtonItem
. 캐치는 그게 다 leftBarButtonItem
~이다 nil
, 그래서 leftBarButtonItem.width
항상 0입니다 (어쨌든 시뮬레이터에서).
backBarButtonItem
또한 nil입니다.
대신 무엇을해야합니까?
해결책
나는 다음을 수행함으로써 이것을 해킹했다.
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