2012-07-30 56 views
-1

从UIViewController中,我需要在UINavigationBar标题的左边放置一个图形。在下图中,星号显示该点。如何以编程方式获得UINavigationBar标题的大小?

____________________________ 
|       | 
| <back|  *Title   | 
|____________________________| 

我认为计算X现货坐标是这个公式的好方法:

self.view.frame.size.width/2.0 - titleWidth/2.0 

如果我能提取UINavigationBar的的titleTextAttributes的UIFont,我将能够获得的CGSize标题。

CGSize titleSize = [self.title 
    sizeWithFont:(UIFont*)[self.navigationController.navigationBar.titleTextAttributes  
    objectForKey:@"font"]]; 

令我沮丧的是,UIFont是零。

+0

btw它当然不是编译器谁失败,它是你或编译... – 2012-07-30 21:38:41

回答

0

如何查看UINavigationBar的子视图,直到找到UITextField,然后检查其大小?

+0

这不是问题,并且使用未公开的代码将失败一天。看到我的答案。 – 2012-07-30 21:34:39

0

错误/未读取文档? UIFont是通过指针使用的适当的Objective-C类。

用途:

(UIFont *)[titleTextAttributes objectForKey:@"font"]; 

代替。

+0

我已经改变了铸件到'UIFont *',但是这个对象在viewDidAppear中是零。 – JoJo 2012-07-30 22:00:29

+0

然后titleTextAttributes没有此项,请尝试NSLogging titleTextAttributes本身。 – 2012-07-30 22:02:25

+0

'{ TextColor =“UIDeviceWhiteColorSpace 0.4 1”; TextShadowColor =“UIDeviceWhiteColorSpace 1 1”; TextShadowOffset =“UIOffset:{0,1}”; }'这看起来没有任何有用的信息来找出标题的字体。我知道字体是boldSystemFontOfSize:20.0,但我担心它可能会改变的不同硬件(iPad vs iPhone)和操作系统(未来版本6)。 – JoJo 2012-07-30 22:04:12

相关问题