UINavigationItem 标题标签设置宽度?

Posted

技术标签:

【中文标题】UINavigationItem 标题标签设置宽度?【英文标题】:UINavigationItem title label set width? 【发布时间】:2010-02-17 13:49:24 【问题描述】:

在我的 UIViewController 中,我动态设置了我的标题,所以我不知道将在导航栏中显示的字符串的长度,因此我有当前的情况: alt text http://img94.imageshack.us/img94/2484/picture3vf.png

有没有办法设置在导航栏中显示标题的标签的宽度?或者我应该想到一个,将文本长度与之比较,如果它太长,我应该调整它的大小并显示著名的“...”?

我知道我可以将 UILabel 作为子视图添加到导航栏,但我不想使用该解决方案。

谢谢!

【问题讨论】:

【参考方案1】:

也许您可以在导航栏中添加一些虚拟按钮,这些按钮将直接位于您的按钮下方。这将显示正常的文本行为,但也允许您使用颜色。

【讨论】:

【参考方案2】:

我不确定你是怎么做到的。如果我正在创建一个导航视图并设置一个太长的标题,默认情况下它将被缩短为“...”。这些黑色按钮似乎不是默认按钮。

【讨论】:

它们作为子视图添加到导航栏,因为我想将背景颜色更改为红色并保持黑色。 我认为没有办法缩小标签宽度。如果您不想使用 UILabel 作为子视图,则只有“jessecurry”方式;)【参考方案3】:

您可以使用 NSString 的 sizeWithFont 方法来了解您的标签将采用的大小。请注意,如果您知道标签宽度不应大于某个值,则可以添加最大尺寸

// Get the size really needed for the label string
    CGSize expectedLabelSize = [self.text sizeWithFont:self.font             
    constrainedToSize:maximumSize                                   
    lineBreakMode:self.lineBreakMode];

【讨论】:

以上是关于UINavigationItem 标题标签设置宽度?的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 UITableViewCell 点击更新 UINavigationItem?

无法以编程方式设置 UINavigationItem 标题

如何使用外观代理设置 UINavigationItem 的 backBarButtonItem?

Xcode 6 Segue 与 UINavigationItem

为 UINavigationItem 的 titleView 设置视图控制器

可以用 UIAppearance 来设置 UINavigationItem 的 titleview 吗?