Check if UINavigationItem title is truncated
Posted
by
PartiallyFinite
on Stack Overflow
See other posts from Stack Overflow
or by PartiallyFinite
Published on 2012-06-09T04:14:14Z
Indexed on
2012/06/09
10:40 UTC
Read the original article
Hit count: 381
I want to check whether the title of a UINavigationItem
is truncated.
I set the title like this: self.navigationItem.title = whatever
.
I know I can check if the text in a UILabel
is truncated like this:
CGSize size = [label.text sizeWithFont:[UIFont fontWithName:@"myfont" size:18.0]];
if (size.width > label.bounds.size.width) {
// set a shorter title
}
And I can even find the UINavigationItemView
object in which the title is displayed like so:
UIView *navItemView;
for (UIView *view in self.navigationController.navigationBar.subviews) {
if ([view isKindOfClass:NSClassFromString(@"UINavigationItemView")]) {
navItemView = view;
}
}
But I cannot apply this method to the navItemView
because is always seems to have a width of exactly 58, which is much less than the title in it, so according to that, it would appear that the title is truncated, even when it isn't.
So, my question comes down to this: How do I find the width of the title displayed in the UINavigationItem
?
UPDATE: I have found a solution to my problem, but it isn't exactly ideal, perfect, or reliable, so I am not marking it as an answer yet. If anyone has any better solutions, please share them.
© Stack Overflow or respective owner