有没有办法以编程方式返回导航控制器标题栏的字体和大小(例如self.title.frame.size
或self.title.font
,虽然我不知道这些是否有效?)
(如果您想知道原因,我想使用NSString sizeWithFont
方法在我截断之前确定标题中可以容纳多少文本。我可以通过我自己实际测量字体和帧大小(例如我认为它是Helvetica 15),但我希望实际的标题报告自己的字体和大小,以使我的应用程序面向未来。)
答案 0 :(得分:3)
从iOS 5.0开始,UINavigationBar有一个名为titleTextAttributes的属性。这是一个包含NSString UIKit Additions Reference描述的属性的字典。
如果我在我的一个项目中打印出这本词典,我会得到以下内容:
Font = "<UICFFont: 0x998e690> font-family: \".Helvetica NeueUI\"; font-weight: bold; font-style: normal; font-size: 20px";
TextColor = "UIDeviceWhiteColorSpace 0.2 1";
TextShadowColor = "UIDeviceWhiteColorSpace 0 0";
TextShadowOffset = "UIOffset: {0, 0}";
...显示20px的粗体默认系统字体。您也可以根据需要更改这些内容。
答案 1 :(得分:1)
我已经弄清楚如何获得框架:
self.navigationItem.titleView.frame.size
只留下字体。我的研究表明它是20号的系统字体,但我喜欢它是自我报告。
编辑 - 这很奇怪。如果我这样做...... self.title = @"test";
NSLog(@"Width is: %f", self.navigationItem.titleView.frame.size.width);
...我从NSLog获得随机负数。所以看起来标题框架不对。