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 的 backBarButtonItem?
Xcode 6 Segue 与 UINavigationItem