UINavigationItem
a のタイトルが切り詰められているかどうかを確認したい。
タイトルを次のように設定しました: self.navigationItem.title = whatever
.
a のテキストが次のUILabel
ように切り捨てられているかどうかを確認できることはわかっています。
CGSize size = [label.text sizeWithFont:[UIFont fontWithName:@"myfont" size:18.0]];
if (size.width > label.bounds.size.width) {
// set a shorter title
}
UINavigationItemView
そして、タイトルが次のように表示されるオブジェクトを見つけることさえできます:
UIView *navItemView;
for (UIView *view in self.navigationController.navigationBar.subviews) {
if ([view isKindOfClass:NSClassFromString(@"UINavigationItemView")]) {
navItemView = view;
}
}
しかし、この方法を に適用することはできません。navItemView
なぜなら、幅は常に正確に 58 であり、タイトルよりもはるかに小さいためです。 .
だから、私の質問はこれに帰着します: に表示されるタイトルの幅を見つけるにはどうすればよいUINavigationItem
ですか?
更新:問題の解決策を見つけましたが、理想的、完璧、または信頼できるものではないため、まだ回答としてマークしていません。誰かがより良い解決策を持っている場合は、それらを共有してください。